OMAPL138製做SD卡啓動介質及重裝Linux系統

OMAPL138製做SD卡啓動盤及重裝Linux系統

手裏的創龍的OMAPL138平臺的系統SSH壞掉了,我從新移植了openssh仍是很差使,沒有辦法了只能重裝OMAPL138的系統了,按照創龍給的文檔《SD卡啓動盤製做》按照步驟進行,當執行一個叫作mksdboot-tl.sh文件時候出現如下報錯:(倒數第4行)linux

sfdisk 無效選項 -- D,而後我進入到了這個腳本文件中查看了這一步驟執行了什麼命令,發現:ubuntu

sfdisk -D -H ....我查看了sfdisk的手冊,並無發現-D參數,諮詢了創龍的AE,他們給的說法是,須要換ubuntu 12.04系統,而我用的是ubuntu 16.04。我沒有去換這個系統,我以爲也不該該去換,咱們應該去尋找問題本質,從根源理論上出發,不能讓問題被動地去改變咱們,而咱們應該去主動解決問題!!帶着好奇心,一步一步的學習,通過一天一晚上的錘鍊,終於把這個問題解決了,成功的把系統寫入了新的SD卡,當看見一個嶄新的系統在我面前的時候,我真的挺激動的。這也正是技術有趣的地方。bash

廢話很少說了,進入正題。架構


【導語】:OMAPL138是德州儀器的ARM+DSP架構,實際上ARM這塊依舊按照TI Sitara系列ARM的套路來的,基本上全部的板子均可以大同小異的按照這個本文提供的方法進行SD卡啓動盤的製做。在本博客中將要分享SD卡分區從新裝在嵌入式Linux在OMAPL138或(TI其餘ARM的平臺)ssh

本機環境和準備工做

  • 本機工做於Ubuntu 16.04.3 amd64 系統
  • u-boot-tools組件 (使用 sudo apt-get install u-boot-tools命令安裝)
  • fdisk命令,dd命令,mkfs命令等
  • OMAPL138的rootfs根文件系統及boot文件(已打好包上傳到百度雲見本文附件)

SD卡的格式化

OMAPL138的Linux系統和引導都在SD裏面,因此SD卡的分區十分重要,在這裏要區分SD的分區和SDka分區的類型和名稱。OMAPL138的文檔中給出要分爲兩個區一個boot(2G大小,格式:b型 FAT32)一個rootfs(很多於4G,85型 Linux文件系統)學習

1. SD卡分區

插上咱們的USB讀卡器,等待系統讀取了SD卡的信息。輸入:ui

  • 查看分區

    sudo fdisk -l.net

    獲得下面截圖的圖片,這裏有兩個注意點,fdisk命令十分危險,必定要看清楚後執行,博主曾經的時候由於輸錯一個字母致使整個機械硬盤格式化,花費了將近一天恢復。重點在看清楚/dev/sdc這個sdc,(插入不一樣的USB口Linux分配的掛在節點名稱就不同,多是sdd,多是sde,總之看清楚確認好是你的目標內存卡3d

    而後看倒數兩行的信息,如今這個SD卡有兩個分區,分別是sdc1和sdc2,咱們如今要把這兩個分區所有清除掉(你的可能有三四個分區,也可能只有一個分區code

  • fdisk操做

    上面的操做已經得到了/dev/sdc的設備節點名稱,而後咱們對/devsdc進行分區,須要創建兩個分區,一個boot(FAT32型,大約2G大小)和rootfs區(Linux文件系統型,內存卡剩餘大小全給它)

    解掛SD卡:

    sudo umount /dev/sdc*

    這裏加入通配符*就是解掛全部分區。

    sudo fdisk /dev/sdc

    會有一個這樣的和用戶交互的界面,能夠輸入p,回車,查看當前/dev/sdc分區狀態。

    而後咱們刪除全部分區,按照圖片輸入:

    到此爲止咱們刪除了全部的分區,而後咱們就開始創建分區。

    創建分區:


    到此爲止,第一個分區咱們的boot分區創建完畢。

    創建第二個分區rootfs分區:

    從圖中能夠看出咱們已經創建了一個linux類型的12.9GiB大小的分區,這個就是rootfs分區,不須要修改文件類型。

    經過p咱們查看創建的分區,就是咱們剛纔創建的分區,重點3個位置,啓動那個*要在sdc1位置,兩個文件類型一個是FAT32 一個是Linux便可。

    還有最後一步,很是重要,輸入w 對結果進行保存。

    而後,fdisk會自動退出。輸入

    sudo fdisk -l命令查看是否創建成功。

    若是的確是這樣的輸出,就成功了。

  • 格式化分區

    咱們進行了分區以後就開始對分區進行格式化操做,並經過命令指定分區卷名字。

    • 把讀卡器拔了從新插一次。

    • 解掛分區: sudo umount /dev/sdc

    • 對/dev/sdc1進行格式化: sudo mkfs.vfat -F 32 -n "boot" /dev/sdc1

    • 對/dev/sdc2進行格式化:sudo mke2fs -j -L "rootfs" /dev/sdc2

      這一步驟會提示「不管如何都要繼續(y,n)」 輸入 y

      提示「Writing superblocks and filesystem accounting information:」 直接回車

    到此,咱們完成了格式化。

創建boot引導區

內存卡的工做已經作完了,咱們開始進行boot引導區的創建,在本文的文件附錄下載壓縮包mksdboot.rar文件,而後解壓到你linux你任意的位置,你喜歡哪裏就哪裏,我解壓到~/script/mksdboot目錄下了,如下全部命令都以這個路徑爲例,本身注意修改。

boot.cmd文件

文件裏面寫入是這些內容

mmc rescan 0
setenv bootargs ${mem_args} console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw ip=off eth=${ethaddr} rootwait

使用mkimage命令創建boot.scr文件

mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Execute uImage' -d ~/script/mksdboot/boot.cmd ~/script/mksdboot/boot.scr

而後咱們進入到這個目錄查看會生成boot.scr文件,這個文件就是咱們要寫入到boot區域的文件。

準備boot文件

1) 把讀卡器拔了,而後再從新插一次

2) 把boot目錄裏面的全部文件都拷貝到內存卡的boot分區。sudo cp ~/script/mksdboot/boot/* /media/delvis/boot/

3) 解掛/dev/sdc: sudo umount /dev/sdc*

4) 重點:使用dd命令燒寫u-boot.ais文件sudo dd if=/home/delvis/script/mksdboot/boot/u-boot.ais of=/dev/sdc seek=10

如圖,表示成功。(這裏請使用絕對徹底的路徑,不要使用終端裏面例如 ~ 這個符號表明的主目錄)

創建Linux的文件系統

1 解壓文件系統到rootfs

這個就沒有什麼了,把內存卡拔了再插一下,在壓縮包的filesystem裏面有rootfs.tar.zb2文件,使用解壓命令,解壓到內存卡的rootfs區域便可。

sudo tar -xvf ~/script/mksdboot/filesystem/rootfs.tar.bz2 -C /media/delvis/rootfs

等待解壓完成以後,一個啓動盤就作好了。

2 創建matrix-gui-2.0的鏈接文件

經過運行這個腳原本進行:注意修改腳本里面的路徑,在5和6行,這個腳本路徑是我本身SD卡掛在的路徑

#!/bin/bash
# check if we need to create symbolic link for matrix 
cd /media/delvis/rootfs/etc/init.d

echo -n "Creating matrix-gui-e symbolic link..."
if [ -f /media/delvis/rootfs/etc/init.d/matrix-gui-e ]; then
  if [ -h /media/delvis/rootfs/etc/rc3.d/*matrix* ]; then
    echo " (skipped) "
  else
    ln -s  ../init.d/matrix-gui-e /tmp/sdk/$$/etc/rc3.d/S99matrix-gui-e
    ln -s  ../init.d/matrix-gui-e /tmp/sdk/$$/etc/rc5.d/S99matrix-gui-e
    echo "Create done"
  fi
fi

sync

3 內存卡啓動

能夠把內存卡拿下來,放在板子裏啓動了。注意調節撥碼開關讓OMAPL138從內存卡啓動。

結束語

今天完成了Linux內存卡的製做,完成了,看到了啓動界面。


附錄文件:

文件:mksdboot.rar

連接:https://pan.baidu.com/s/1pLzc0I3 密碼:f9v8


參考文獻:

[1] kooking著 SD卡給am335x用做啓動介質. TI技術支持社區.

[2] 傑瑞26著. 圖解Linux命令--mkfs命令. CSDN博客.

[3] 創龍公司著. mksdboot-tl.sh腳本文件和相關文檔. 創龍手冊.


版權聲明:

1. 本文爲MULTIBEANS團隊研發跟隨文章,未經容許不得轉載。

2· 文中涉及的內容如有侵權行爲,請與本人聯繫,本人會及時刪除。

3· 尊重成果,本文將用的參考文獻所有給出,向無私的工程師,愛好者致敬。

相關文章
相關標籤/搜索