新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > S5PV210(TQ210)學習筆記——內核移植與文件系統構建

        S5PV210(TQ210)學習筆記——內核移植與文件系統構建

        作者: 時間:2016-11-28 來源:網絡 收藏

        在etc目錄下創建Inittab文件,內容如下

        1. ::sysinit:/etc/init.d/rcS
        2. console::askfirst:-/bin/sh
        3. ::restart:/sbin/init
        4. ::ctrlaltdel:/sbin/reboot
        5. ::shutdown:/bin/umount-a-r
        6. ::shutdown:/sbin/swapoff-a

        在etc/init.d/目錄下創建rcS文件,內容如下
        1. echo"----------mountall.........."
        2. mount-a
        3. echo"----------Startingmdev......"
        4. echo/sbin/mdev>/proc/sys/kernel/hotplug
        5. mdev-s
        6. /bin/hostname-F/etc/sysconfig/HOSTNAME

        為inittab和rcS文件添加可執行權限
        1. chmoda+xinittab
        2. chmoda+xrcS

        在etc目錄下創建fstab文件,內容如下
        1. #evicemount-pointtypeoptiondumpfsckorder
        2. proc/procprocdefaults00
        3. none/tmpramfsdefaults00
        4. mdev/devramfsdefaults00
        5. sysfs/syssysfsdefaults00

        在etc目錄下創建profile文件,內容如下
        1. PATH=/bin:/sbin:/usr/bin:/usr/sbin
        2. exportPATH
        3. #sethostname
        4. HOSTNAME=/bin/hostname
        5. exportHOSTNAME
        6. #SetPS1
        7. PS1=[u@hW]$
        8. exportPS1

        拷貝主機/etc目錄下的passwd和group文件到etc目錄下。

        (5) 設置HOSTNAME文件

        在etc/sysconfig目錄下創建HOSTNAME文件,在文件中寫入主機名,我這里寫的是bruce。

        (6) 安裝內核modules

        進入內核源碼目錄,執行

        1. makemodules

        待編譯完成后安裝modules,執行指令
        1. makemodules_installINSTALL_MOD_PATH=/nfsroot/rootfs

        到這,根文件系統就構建完成了.

        三 設置uboot啟動參數

        我的nfs根目錄為/nfsroot,我的根文件系統目錄是在該目錄之下的,即/nfsroot/rootfs目錄,故uboot啟動參數設置如下

        1. noinitrdconsole=ttySAC0root=<主機IP>:/nfsroot/rootfsrwip=<開發板IP>:<主機IP>:<網關>:<子網掩碼>::eth0:offinit=/linuxrc

        需要注意的是,所有的冒號":"都不可省略。

        四 網卡驅動移植(DM9000)

        選擇網卡移植是因為網卡驅動相對較為簡單,對于DM9000就更加簡單了,因為內核本身提供了DM9000的驅動程序,但是沒有針對開發板進行管教配置,因此,我們配置下開發板相關的東西即可完成網卡驅動的移植。打開arch/arm/mach-s5pv210/mach-smdkv210.c文件,并作以下修改:

        (1) 修改smdkv210_dm9000_resources定義如下

        1. staticstructresourcesmdkv210_dm9000_resources[]={
        2. [0]={
        3. .start=0x88000000,
        4. .end=0x88000000+3,
        5. .flags=IORESOURCE_MEM,
        6. },
        7. [1]={
        8. .start=0x88000000+4,
        9. .end=0x88000000+4+3,
        10. .flags=IORESOURCE_MEM,
        11. },
        12. [2]={
        13. .start=IRQ_EINT(10),
        14. .end=IRQ_EINT(10),
        15. .flags=IORESOURCE_IRQ|IORESOURCE_IRQ_HIGHLEVEL,
        16. }
        17. };

        (2) 修改smdkv210_dm9000_init函數如下
        1. staticvoid__initsmdkv210_dm9000_init(void)
        2. {
        3. unsignedlong*srom_bw=ioremap(0xE8000000,4);
        4. unsignedlong*srom_bc1=ioremap(0xE8000004,4);
        5. *srom_bc1=((0<<28)|(0<<24)|(5<<16)|(0<<12)|(0<<8)|(0<<4)|(0<<0));
        6. *srom_bw&=~(0xf<<4);
        7. *srom_bw|=(1<<4)|(1<<5);
        8. gpio_request(S5PV210_MP01(1),"nCS1");
        9. s3c_gpio_cfgpin(S5PV210_MP01(1),S3C_GPIO_SFN(2));
        10. gpio_free(S5PV210_MP01(1));
        11. iounmap(srom_bw);
        12. iounmap(srom_bc1);
        13. }

        這樣,就完成了DM9000網卡驅動的移植,其實這樣修改是有邏輯的,根據TQ210的原理圖可知DM9000連接的片選時nCS1,也就是網卡是接在來ROM控制器的BANK1上。

        根據S5PV210的內存映射表可以看出,SROMC的BANK1地址空間為0x88000000~0x8FFFFFFF,故當CPU尋址該范圍內的地址空間時才會使能片選nCS1。所以,我們采用的是0x88000000地址。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 封开县| 涿州市| 怀远县| 武安市| 班戈县| 正阳县| 庆城县| 通辽市| 上蔡县| 泸州市| 元氏县| 台南县| 平湖市| 乌拉特前旗| 遵义县| 永顺县| 开封市| 潜山县| 高邑县| 南部县| 西平县| 辽阳县| 乃东县| 永安市| 特克斯县| 灵山县| 赤城县| 台山市| 丰原市| 云安县| 藁城市| 东安县| 吴桥县| 那坡县| 环江| 彰武县| 福安市| 仙游县| 海伦市| 邢台县| 凉山|