1. samba配置 – 安裝編譯器
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安裝的包
apt-get install build-essential 安裝編譯器
#阿里
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安裝的包
apt-get install build-essential
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安裝的包
sudo apt-get dist-upgrade 升級系統
update 是更新 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的地址,這樣才能獲取到最新的軟件包
upgrade 是升級已安裝的所有軟件包,升級之後的版本就是本地地址裏的,因此,在執行 upgrade 之前一定要執行 update, 這樣才能更新到最新的
系統更新源指的是你的更新的源頭,無論你使用APT工具還是dpkg、rpm等,他們都有一個文件,裏面存放了可以下載到軟件的“更新源”,就是那些軟件的下載網址。這個文件是/etc/apt/sources.list。
2. 虛擬機安裝ubuntu18.04後不能上網問題
虛擬機中使用上面的版本
還原一下就好了
3. 安裝qmenu
3.1下載Qemu源碼編譯安裝
在這裏選擇qemu-4.2.0.tar.xz使用;
3.2安裝依賴
在配置qemu之前,需要安裝一些依賴的庫或者軟件包:
# sudo apt-get install zlib1g-dev
# sudo apt-get install libglib2.0-0
# sudo apt-get install libglib2.0-dev
# sudo apt-get install libtool
# sudo apt-get install libsdl1.2-dev
# sudo apt-get install autoconf
解壓源代碼:
# tar -xvf qemu-4.2.0.tar.xz
爲了防止編譯後文件比較亂,選擇創建build目錄作爲編譯中間目標路徑:
# cd qemu-4.2.0/
# mkdir build
# cd build/
配置、編譯並安裝Qemu:
# ../configure --target-list=arm-softmmu --audio-drv-list=
# make
# make install
3.3在編譯過程中可能出現的問題
# ../configure --target-list=arm-softmmu --audio-drv-list=
ERROR: pkg-config binary 'pkg-config' not found
缺少庫文件,按照上一步中的步驟安裝庫文件;
#
../configure
--target
-list
=arm
-softmmu
--audio
-drv
-list
=
ERROR
: pixman
>=
0.21.8
not present
.
Please install the pixman devel package
.
可以通過apt-cache查詢缺少的依賴庫:
# apt
-cache search pixman
libpixman
-1-0
- pixel
-manipulation
library
for X and cairo
libpixman
-1-dev
- pixel
-manipulation
library
for X and cairo
(development files
)
安裝缺少的依賴庫:
# sudo apt-get install libpixman-1-0
# sudo apt-get install libpixman-1-dev
3.4查看Qemu版本
查看Qemu支持的開發板
Qemu工具支持大量開發板的虛擬,現存的大部分常用開發板都能很好地支持。通過下面的命令操作可以看到當前版本的Qemu工具支持的開發板列表:
.
4. 安裝編譯工具鏈
安裝錯誤的解決方法:
root@ubuntu:/var/cache/apt/archives# sudo apt-get install gdb-arm-none-eabi
5. 編譯內核
在Makefile中配置默認值,指定ARCH和CROSS_COMPILE,免得每次編譯都需要帶參數;
5.1生成配置文件 – 默認的配置文件
root@ubuntu:/home/alpha/share/linux-4.4.157# make vexpress_defconfig ARCH=arm O=./object
遇到的問題:
root@ubuntu:/home/alpha/share/linux-4.4.157# apt-get install libncurses5-dev libncursesw5-dev
5.2生成配置文件 – 修改配置文件
root@ubuntu:/home/alpha/share/linux-4.4.157# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig -j4 O=./object 指定輸出路徑
make vexpress_defconfig //配置文件
# make zImage -j4 //編譯內核鏡像文件
# make modules -j4 // 編譯驅動模塊
# make dtbs // 編譯設備樹
分別將編譯生成的zImage和vexpress-v2p-ca9.dtb文件放到/home/alpha/share/qemu目錄;
啓動腳本:
運行腳本後即可啓動:./boot.sh
內核成功啓動,內核的啓動打印信息非常多。啓動最後出錯是因爲沒有掛載根文件系統。
6. 先安裝busybox
6.1 生成配置文件
root@ubuntu:/home/alpha/share/busybox-1.31.1# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig
編譯選擇使用glibc動態庫,因爲靜態庫可能會出現一些未知的問題,取消掉
默認的安裝目錄是./_install,如果需要指定安裝目錄,可以在下邊修改:
6.2 編譯busybox
root@ubuntu:/home/alpha/share/busybox-1.31.1# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
6.3 安裝
修改頂層makfile
提示下邊信息,表示安裝成功:
或者直接使用CONFIG_PREFIX指定安裝目錄:
安裝完成之後,生成的目標文件默認在./_install目錄,這個目標文件目錄就是下邊要製作根文件系統需要用到的工具:
6.4 生成簡易根文件系統
將編譯器的庫文件和_install 文件拷貝到此根文件系統內
6.5 製作SD卡文件系統鏡像
1) 生成一個空的SD卡鏡像:
# dd if=/dev/zero of=rootfs.ext3 bs=1M count=32
2) 將SD卡格式化爲exts文件系統:
# mkfs.ext3 rootfs.ext3
3) 將rootfs燒寫到SD卡:
# sudo mount -t ext3 rootfs.ext3 /mnt -o loop
# sudo cp -rf rootfs/* /mnt/
# sudo umount /mnt
6.6啓動腳本
6.7驗證結果:
7.調試內核
安裝調試工具
apt-get -o Dpkg::Options::="--force-overwrite" install gdb-arm-none-eabi
在gdb命令行中,輸入如下命令
(gdb) target remote localhost:1234
(gdb) b start_kernel
(gdb) c