<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > minis3c2440移植之文件系統(tǒng)移植

          minis3c2440移植之文件系統(tǒng)移植

          作者: 時(shí)間:2016-11-24 來(lái)源:網(wǎng)絡(luò) 收藏
          說(shuō)在前頭:linux重要的常見(jiàn)系統(tǒng)文件都含有以下的文件,我們所做的就是要編譯生成這些文件。
          bin 普通文件目錄(里面是普通的shell腳本命令二進(jìn)制文件)
          sbin 系統(tǒng)文件目錄(里面是系統(tǒng)文件的shell腳本命令二進(jìn)制文件)
          dev 設(shè)備文件目錄(里面是對(duì)一些外設(shè)的驅(qū)動(dòng)配置如:網(wǎng)卡驅(qū)動(dòng))
          etc 配置文件目錄
          lib 庫(kù)文件目錄(里面是系統(tǒng)調(diào)用時(shí)一些常用到的靜態(tài)和動(dòng)態(tài)庫(kù))
          proc 內(nèi)存文件目錄(一般作為內(nèi)存映射)
          mnt 外部設(shè)備掛目錄(常見(jiàn)的CD/DVD,USB外設(shè)都會(huì)掛在次目錄下)
          tmp
          對(duì)于我們現(xiàn)在來(lái)說(shuō)的動(dòng)作就具體的編譯生成這些文件,首先用的是busybox- 1.13.1編譯工具直接生成bin和sbin這兩個(gè)系統(tǒng)文件,其次是手動(dòng)的建立其他的文件目錄,最后一起編譯生成root.cramfs系統(tǒng)文件。而我們所用的busybox-1.13.1也是支持多種體系的,自然而然適用于s3c2440的板子。
          一、 用busybox-1.13.1工具生成bin和sbin文件
          1、 將busybox-1.13.1.tar的壓縮包拷貝到linux的根目錄下,進(jìn)行解壓。
          2、 進(jìn)入busybox-1.13.1的目錄下,修改Makefile配置文件如下
          189行:ARCH ?=arm
          164行:CROSS_COMPILE ?=arm-linux-
          3、 make menuconfig保存后會(huì)在當(dāng)前的目錄下生成.config
          4、 cp scripts/defconfig .config將默認(rèn)缺省的配置拷貝到.config文件中
          5、 導(dǎo)入環(huán)境變量export PATH=/armtools/bin:$PATH
          6、 make之后make install之后會(huì)在當(dāng)前的目錄下生成_install的目錄,在此目錄下的usr目錄下就是我們需要的bin和sbin文件。
          二、 手動(dòng)創(chuàng)建其他所需要的文件系統(tǒng)
          1、 在linux的根目錄下創(chuàng)建testfs/rootfs目錄,然后進(jìn)入testfs的目錄下將步驟一中生成的_install文件全部拷貝到rootfs的目錄下等待編譯。 cp –raf /busybox-1.13.1/_install/* rootfs/
          2、 在rootfs的目錄下手動(dòng)創(chuàng)建mkdir sys etc tmp proc lib dev目錄
          3、 在dev的目錄下設(shè)置設(shè)備串口結(jié)點(diǎn):
          mknod –m 666 console c 5 1
          mknod –m 666 zero c 1 3
          4、 在armtools下的庫(kù)文件全部拷貝到lib目錄下以待arm板子的系統(tǒng)和文件調(diào)用cp -raf /armtools/arm-linux/lib/* rootfs/lib/然后在roofs/lib的路徑下rm *.a刪除所有以”.a”為結(jié)尾的靜態(tài)庫(kù)文件(也可以不刪除,一般為了減小最后生成的文件系統(tǒng)的大小就刪掉了)。
          5、 在etc的目錄下touch inittab,再在此文件中編輯系統(tǒng)初始化文件:
          ::sysinit:etc/init.d/rcS和::sysinit:/bin/sh(shell的執(zhí)行路徑)。
          6、 再在etc的目錄下創(chuàng)建上面所需要的路徑以及文件mkdir init.d,然后進(jìn)入此文件夾touch rcS,接下來(lái)在此文件中編輯掛載的路徑:
          #!/bin/sh
          /bin/mount –a
          7、 再在etc的目錄下touch fstab,在此文件中編輯
          None /proc proc defaults 0 0 表示將proc文件掛載到/proc的目錄下
          8、 退出導(dǎo)testfs目錄下準(zhǔn)備編譯文件系統(tǒng)mkfs.cramfs /rootfs root.cramfs
          意思是將rootfs的文件壓縮生成以”.cramfs”為格式的root.cramfs文件系統(tǒng)。
          說(shuō)明:生成的root.cramfs的大小必須和文件系統(tǒng)燒錄是的大小一致(要求是燒錄時(shí)的大小至少大于文件系統(tǒng)root.cramfs的大小),否則將不能完整的將整個(gè)文件系統(tǒng)燒錄到flash中,最終導(dǎo)致系統(tǒng)不能正常運(yùn)行。


          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();