免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
linux-2.6中的udev問題
2007-08-11
計(jì)劃的任務(wù)
發(fā)現(xiàn)的問題
完成的任務(wù)
1.  不能啟動(dòng)linuxrc。
Ø         問題現(xiàn)象:
²        啟動(dòng)后提示:
Warning: unable to open an initial console.
Failed to execute /linuxrc.  Attempting defaults...
Ø         解決過程:
²        加載的根文件系統(tǒng)是在2.4內(nèi)核下可以正常使用的cramfs文件系統(tǒng)。后來根據(jù)提示,發(fā)現(xiàn)根目錄下并沒有l(wèi)inuxrc文件。懷疑2.6和2.4的根文件系統(tǒng)不能通用,于是決定自己重新做一個(gè)。
²        下載了busybox-1.3.2,修改makefile的arch和cross-compiler參數(shù),make menuconfig。其中遇到的一個(gè)問題是,當(dāng)我選擇靜態(tài)編譯時(shí),好像提示編譯器庫不支持,具體忘了,用的gcc版本為gcc-4.1.1。
²        新制作的文件系統(tǒng)根目錄下有一個(gè)linuxrc文件,是一個(gè)指向busybox文件的鏈接文件。添加了網(wǎng)上說的一些目錄,etc下的文件從原來的文件系統(tǒng)下拷過來的。制作成cramfs后,就可以出現(xiàn)shell了。
2.  /dev目錄下沒有設(shè)備文件。
Ø         問題現(xiàn)象:
²        加載rootfs(cramfs)后,/dev目錄下只有在上位機(jī)上創(chuàng)建的console和null。
Ø         解決過程:
²        因?yàn)橛玫膬?nèi)核2.6.22已經(jīng)取消了devfs的支持,使用的是udev。從網(wǎng)絡(luò)得知,busybox自帶了mdev,是一個(gè)精簡的udev。只要在linuxrc中添加:
mdev –s
echo /sbin/mdev > /proc/sys/kernel/hotplug
就可以了,但是我的是一個(gè)二進(jìn)制的文件,沒法添加腳本。搜索,發(fā)現(xiàn)可以用一個(gè)腳本文件覆蓋原來的linuxrc。于是都照網(wǎng)上的一個(gè)腳本寫了一個(gè),內(nèi)容如下:
#!/bin/sh
echo "mount /etc as ramfs"
/bin/mount -n -t ramfs ramfs /etc
/bin/cp -a /mnt/etc/* /etc
echo "recreate the /etc/mtab entries"
# recreate the /etc/mtab entries
/bin/mount -f -t cramfs o remount,ro /dev/mtdblock3 /
#mount some file system
echo "mount /dev/shm as tmpfs"
/bin/mount n t tmpfs tmpfs /dev/shm
#掛載/proc為proc文件系統(tǒng)
echo "mount /proc as proc"
/bin/mount -n -t proc none /proc
#掛載/sys為sysfs文件系統(tǒng)
echo "mount /sys as sysfs"
/bin/mount -n -t sysfs none /sys
#add mdev support
mdev –s
echo /sbin/mdev > /proc/sys/kernel/hotplug
exec /sbin/init
結(jié)果有出現(xiàn)了:
Warning: unable to open an initial console.
Failed to execute /linuxrc.  Attempting defaults...
錯(cuò)誤。
²        為什么自己生成的可以,而添加的就不可以呢,自己生成的到底干了些什么事情呢?后來發(fā)現(xiàn),自己添加的linuxrc沒有可以執(zhí)行屬性,chmod 777后,終于可以執(zhí)行了,但是又出現(xiàn)了新的錯(cuò)誤,說找不到/etc/init.d/rcS。但是我確認(rèn)過這個(gè)文件是在的,為什么會找不到呢。于是打算看看busybox的源代碼,看看自帶的linuxrc到底干了些什么事情。
²        看了很久,就是找不到linuxrc相關(guān)的代碼,好像入口就是指向init_main的。而該入口是/sbin/init的入口啊。難道linuxrc什么都沒有做。跟蹤了一下,結(jié)果證實(shí)了我的想法,自帶的linuxrc相當(dāng)于只執(zhí)行了一句:
exec /sbin/init
于是我把linuxrc其它的語句都刪除,只保留了一句,執(zhí)行結(jié)果和自帶的文件結(jié)果一模一樣。
看來,應(yīng)該是前面那些腳本的問題了,進(jìn)入啟動(dòng)的shell,竟然發(fā)現(xiàn)/etc下面是空的,再看了下腳本,才恍然大悟,原來是語句:
/bin/mount -n -t ramfs ramfs /etc
干的好事,因?yàn)橄旅娴哪蔷淇截愓Z句沒有執(zhí)行成功,所以/etc下面就空了,而我的/mnt下面是空的,所以什么都沒有拷到。
²        修改后,重新加載發(fā)現(xiàn)我的dev下面還是什么都沒有,運(yùn)行了mdev –s后沒有效果。后來覺悟,我的/dev目錄是只讀的,如果程序要?jiǎng)?chuàng)建東西也創(chuàng)建不了啊。于是運(yùn)行:
/bin/mount –t tmpfs tmpfs /dev
現(xiàn)在可以寫了,可是mdev –s還是沒有反應(yīng),why?仔細(xì)查看了啟動(dòng)腳步,發(fā)現(xiàn)還有一個(gè)錯(cuò)誤,就是mount sysfs on /sys failed,進(jìn)而發(fā)現(xiàn)我的根目錄下并沒有sys文件夾,添加,重新燒寫,終于在/dev下發(fā)現(xiàn)了一大堆東西,高興啊。
²        這過程中還碰到的一個(gè)小問題是,我在上位機(jī)上的/etc下面發(fā)現(xiàn)一個(gè)mtab的鏈接,指向的是self/mtab,沒有任何內(nèi)容,又自認(rèn)為該文件在啟動(dòng)時(shí)是自動(dòng)創(chuàng)建的,就把它刪了,發(fā)現(xiàn)啟動(dòng)就出錯(cuò)了。啟動(dòng)時(shí)只是重新寫,而不能創(chuàng)建它,所以不能刪了它的。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
移植yaffs到linux
詳解linux內(nèi)存磁盤初始化技術(shù)
嵌入式linuxbusybox文件系統(tǒng)的移植和rzsz命令的添加
使用busybox-1.9.2制作根文件系統(tǒng)
Linux內(nèi)核移植和yaffs2根文件系統(tǒng)制作V1.2(6)
mini6410根文件系統(tǒng)的制作
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服