製作一個最小Linux系統

来源:https://www.cnblogs.com/mbzm-Nicn/archive/2018/09/20/9678476.html
-Advertisement-
Play Games

使用的是itop4412開發板(僅記錄個人的學習回顧,如有不當之處歡迎指出) 致謝 準備:busybox軟體、uboot(一般和開發板配套)、zImage(kernel內核)、ramdisk uboot.img(系統掛載硬碟使用)、system.img(製作的系統鏡像) system.img的製作步 ...


使用的是itop4412開發板(僅記錄個人的學習回顧,如有不當之處歡迎指出)
---------致謝

準備:busybox軟體、uboot(一般和開發板配套)、zImage(kernel內核)、ramdisk-uboot.img(系統掛載硬碟使用)、system.img(製作的系統鏡像)
system.img的製作步驟:
一、busybox(為最小系統提供命令支持(個人理解))
先配置busybox:
a、make menuconfig時出現問題,提示如下圖

問題的原因是顯示像素不夠,把你的命令視窗最大化(直接進入全屏)如果使用的是VM虛擬機直接點擊 圖標。
1、將busybox拷貝到Linux中(位置任意,最好取一個有指向性的文件夾名稱如:miniLinux),解壓busybox(解壓命令:tar -vxf busybox-x.xx.x.tar.bz2),然後進入解壓出的 busybox.xx.xx.xx 中,使用 make menuconfig 進入配置界面開始配置busybox:

如上圖,選中 Busybox Settings,然後按回車進入到 Busybox Settings 界面,如下圖。

在 Busybox Settings 配置選項裡面需要修改兩個地方,第一個是 Build Optiions-> CrossCompiler prefix,它是指定用什麼編譯器來編譯 Busybox,選中 Build Options 如上圖,然後按回車,進入到 Build Options 配置界面,如下圖。

選中 Build Options 配置界面的 Cross Compiler prefix 如上圖,然後按回車,進入 CrossCompiler prefix 配置界面,如下圖

輸入使用的交叉編譯工具 arm-none-linux-gnueabi-,如下圖。

然後按回車返回到 Build Options 配置界面,這時可以看到剛纔設置的交叉編譯工具,如下圖。

然後回到 Busybox Settings 設置界面,選中 Installation Options,然後按回車,進入 Installation Options 配置界面,如下圖。

進入上圖選項,設置的是busybox的安裝路徑(如設置為“../system”(最終生成的二進位文件會安裝到system目錄的上一級目錄下的 system 目錄裡面,註意有兩個點)說明白一點:例如你在minilinux(busybox所在文件夾)文件夾下建立了一個system文件夾(minilinux即為上一級目錄,busybox會安裝在這個目錄下的system下)),至此配置完成;
2、編譯安裝busybox
編譯:再解壓出來的busybox.xx.xx.xx目錄下運行命令make(自動根據makefile文件來編譯)。
安裝:編譯完成後運行 make install 安裝二進位文件。
。。。。。。。。。。。。。。。。。busybox部分完結。。。。。。。。。。。。。。。。。。。
二、完善最小linux系統
1、 建立系統所需文件夾
a) 進入system文件夾建立 dev etc lib mnt proc sys tmp var 文件夾(是不是似曾相識)。
b) 進入 etc 建立 init.d rc.d 文件夾 隨後進入 rc.d 也建立一個 init.d 文件夾。
c) 進入system文件夾下的 var 建立 lib lock log run tmp 文件夾。
2、添加系統運行所需文件
a)進入創建的etc目錄
將eth0-setting passwd profile三個文件拷貝進去,將文件的許可權改為755
b)進入etc目錄下的init.d目錄
將ifconfig-eth0和rcS兩個文件拷貝進去,將文件的許可權改為755
c) 進入 etc/rc.d/init.d目錄
將netd文件拷貝進去,將文件的許可權改為755
d)返回到system目錄下,進入lib文件夾下將編譯器的庫文件拷貝進去
"cp /usr/local/arm/arm-2009q3/arm-none-linux-gnueabi/libc/lib/* ./
三、生成system.img鏡像文件
使用工具:make_ext4fs(該工具在“/”(根目錄)下解壓)
命令:在 system 所在文件夾下使用 “make_ext4fs -s -l 314572800 -a root -L linux system.img system”
。。。。。。。。。。。。。。。。。。。。。。。system.img製作完畢。。。。。。。。。。。。。。。。。。。。。。。

燒寫minilinux:
1、 啟動開發板,超級終端中,在讀秒前回車(開發板上電就回車)進入Uboot模式;
2、分區命令,超級終端中,輸入命令:輸入分區命令“fdisk -c 0”
3、格式化命令,超級終端中輸入命令:
– fatformat mmc 0:1
– ext3format mmc 0:2
– ext3format mmc 0:3
– ext3format mmc 0:4
4、 連接命令(鏈接燒寫軟體),超級終端中輸入命令:fastboot 查看電腦是否識別設備(查看電腦設備管理器是否出現ADB驅動),如沒有檢查你的線路連接或者驅動器是否安裝成功。
5、運行“platform-tools”文件夾中的文件“cmd.exe”,將需要燒寫的文件(uboot、zImage、ramdisk-uboot.img、system.img)拷貝到“platform-tools”文件夾中。
6、 燒寫命令,在windows命令行輸入:
– 燒寫uboot命令(不建議燒寫,已經有了): fastboot.exe flash bootloader u-boot-iTOP-4412.bin
– 燒寫zImage內核命令: fastboot.exe flash kernel zImage
– 輸入燒寫ramdisk 命令: fastboot.exe flash ramdisk ramdisk-uboot.img
– 輸入燒寫system 文件系統命令: fastboot.exe flash system system.img
– 輸入擦除命令:fastboot -w
– 輸入重啟開發板命令: fastboot reboot
。。。。。。。。。。。。。。。。。。。。。。。。。。製作完畢。。。。。。。。。。。。。。。。。。。。。。。。。。。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 系統信息: arch 顯示機器的處理器架構(1) uname -m 顯示機器的處理器架構(2) uname -r 顯示正在使用的內核版本 dmidecode -q 顯示硬體系統部件 - (SMBIOS / DMI) hdparm -i /dev/hda 羅列一個磁碟的架構特性 hdparm -tT ...
  • 用戶的角色是通過UID和GID識別的。 UID用戶ID:相當於各為的身份證,在系統中是唯一的 GID組ID:相當於各為的家庭或者你們的學校。 1、新建用戶及設置密碼命令如下: useradd 【參數】 用戶名 -g 屬組 -u 設置uid -m 創建家目錄 -M 沒有家目錄 -G 指定屬於多個組 - ...
  • 1.安裝ssh 2.備份ssh的配置文件 3.新裝的ssh需要修改配置文件 配置文件修改這幾處地方 4.啟動ssh 如果提示錯誤信息中包含could not load host key 則需要重新生成 key 生成之後需要重啟SSH服務使新的密鑰生效: 啟動、停止和重啟ssh的命令如下 5.查看服務 ...
  • 一. 概述 在上一篇中講到了與用戶賬戶有關的二個文件passwd和shadow,以及useradd工具的介紹。這篇接著講useradd+參數,刪除用戶,修改用戶的演示。 1. 刪除用戶userdel 使用userdel可以刪除用戶,但只會刪除etc/passwd文件中的用戶信息,而不會刪除系統中屬於 ...
  • 方法一: 1、先檢查一下windows update服務是否開啟,並禁用殺毒軟體; 2、如果此服務已經啟動,先嘗試更換一下網路環境重新更新; 3、如果更換網路環境後依然無法更新,就刪除windows update緩存文件,刪除方法如下: 分別打開:C:\Windows\SoftwareDistrib ...
  • 瞭解Cobbler之前,我們需要先對PXE及KickStart有一定的認識。 PXE PXE(Pre-bootExecution Environment),預啟動執行環境,通過網路介面啟動電腦,支持Client通過網路從Server下載映像,並由此通過網路啟動操作系統;在啟動過程中,Client要 ...
  • 1、常用的RPM軟體包命令 安裝軟體的命令格式  rpm –ivh filename.rpm 升級軟體的命令格式  rpm –Uvh filename.rpm 卸載軟體的命令格式  rpm –e filename.rpm 查詢軟體描述信息的命令格式  rpm ...
  • SMB(Server Message Block)協議,服務消息塊協議。 最開始是用於微軟的一種消息傳輸協議,因為頗受歡迎,現在已經成為跨平臺的一種消息傳輸協議。 同時也是微軟歷史上出現安全問題最多的協議。 它的實現複雜,並且預設在所有windows上開放。 SMB常用的埠有兩個139和445,較 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...