跑u系統源碼
A. 大家好,小弟一直不明白對linux或uboot源碼包打補丁的原因。在網上查了資料也沒有詳細的介紹。
1、配置源碼需要重新編譯,而重新編譯系統會花費大量的時間,而且Linux系統並不是修改源碼就能編譯通過,還涉及到很多的Makefile,那麼要你單獨一個個的修改工作量也會比較大。但是源碼補丁可以自動識別和替換需要的,方便了一些並不是太熟悉Linux的人,而且減輕了用戶的工作量。
2、既然是補丁,肯定都是針對某一些特殊情況開發的,並不是所有人都會遇到這些情況,也並不是所有人都需要這些補丁。Linux發布的源碼都是一些Linux比較大的升級時候發布一次的,而源碼是提供給所有人的,那麼也不是每個人都需要這個補丁的源碼呀,一般都只是下載和自己所從事專業有關的。
補丁的話隨便你自己,因為不是所有人都需要那個補丁,就算你不裝,也沒什麼問題的
B. 關於ARM開發板(RK3399)Android系統的emmc進行Tuning的次數在源代碼中應該在什麼地方看
U-boot 支持 2 種方式燒寫 emmc 設備:
Fastboot 命令:通過 usb 介面燒寫。
步驟:
1. 編寫 u-boot 支持從 sd 卡啟動,裡面涉及到文件的修改,下面講解。
2. 按照上述方法,把 u-boot 燒錄到 sd 上,使開發板從 sd 卡啟動。
3. 進入開發板命令終端 # :
4. 首先格式 emmc ,目的是分配 4 個分區。分別為 vfat 分區 , system 分區 , userdata 分區 , Cache 分區 .
# : Fdisk -c 0
-c : 表示格式當前設備
0 : 表示初始化的 emmc 設備節點, mmc/sd 設備載入順序,分配的節點從 0 開始到 3 結束。不管你從哪個通道指定起始設備,多從 0 開始分配。如: emmc 佔用通道 0 口,
分配的節點是 0 , sd 卡佔用通道 2 口,分配的節點是 1.
如果不初始化emmc,只使用sd卡模式,在sd卡佔用通道2口時,分配的節點是 0.這點請
了解源代碼,後續會修改。
所以,如果想給板子上 SD 分區的話,使用如下命令 ( 在 emmc 也初始化成功的情況下 )
#: fdisk -c 1
C. 的linux源碼和uboot源碼是開源的么
Linux 不光核心系統是開源的,正規的 GNU/Linux 的要求是整個系統也都是開源的。
不過這不是絕對的,SUSE 企業版,Mandriva PowerPack ,以及一些系統,裡面會有不開源的的東西存在,但大部分都開源。
你可以認為,所有的 GNU/Linux 都是完全開源的。
他們的源代碼都可以在官方網站下載,或者藉助他們的軟體包管理器在軟體源中下載。
開源的系統不光 Linux ,常見的還有 BSD ,BSD 的更加開放,因為他的源代碼允許商業化修改後閉源再發布,這比 GNU GPL 對於商業友好不知多少倍。當然也有不少無恥的公司,拿來直接閉源再發布騙錢的。
之後還有 MAC OS X ,他的底層系統 darwin 是開源的,不過協議不同於一般的開源。但他的界面是不開源的,所以就有了 GNU/darwin ,底層 darwin ,上層 GNU 軟體。
還有 openSolaris ,開源的 UNIX 。
剩下的還有一些,就不如上面的廣泛了。
D. 操作系統源代碼指什麼是不是有了這個以後就可以復制這個操作系統(完全不懂,求教)
主要指系統內核的源代碼。可以把系統內核程序編譯出來
開機的時候使用 bootloader 來載入內核程序,這樣系統就跑起來了
E. 如何將Minix系統源碼跑起來就是怎麼編譯Minix源碼,然後運行跑起來
#cd /usr/src/kernel
#make clean
#make
#cd /usr/src
#make install
F. 在uboot源碼中 CONFIG_NAND_U_BOOT = y是什麼意思
uboot的編譯控制,具體要看代碼才行,字面上面的意思是Nand命令有關。
G. qemu怎麼把針對powerpc板的u-boot跑起來
使用Qemu模擬Cortex-A9運行U-boot和Linux 作者來源於網路
我的開發環境: Ubuntu-12.04 所有軟體包為最新
1. 安裝GNU工具鏈
sudo apt-get insatll gcc-arm-linux-gnueabi
sudo apt-get insatll g++-arm-linux-gnueabi
安裝完成後會在 /usr/arm-linux-gnueabi/ 目錄下生成庫文件、頭文件等。 我安裝的GCC版本為:
arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
2. 安裝Qemu模擬器
sudo apt-get install qemu qemu-system qemu-utils
這時應該已經可以運行qemu-system-arm命令了, 其版本為:
qemu-system-arm --version
QEMU emulator version 1.0.50 (Debian 1.0.50-2012.03-0ubuntu2), Copyright (c) 2003-2008 Fabrice Bellard
3. 編譯和運行U-boot:
到 ftp://ftp.denx.de/pub/u-boot/ 下載最新版本的U-Boot源代碼, 我用的目前最新版本 u-boot-2012.04.tar.bz2
解壓後進入源代碼目錄,在Makefile裡面增加兩行:
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-gnueabi-
其實就是告訴它使用ARM編譯器來編譯。
make ca9x4_ct_vxp_config
make
這里配置目標板為 Cortex-A9x4 vexpress. 之所以選這個配置可以從 boards.cfg文件里看到, vexpress是ARM公司使用Cortext-A9的一個開發板,相關的代碼在 board/armltd/vexpress/ 目錄,配置文件為include/configs/ca9x4_ct_vxp.h。 而且關鍵的是Qemu裡面已經支持這個板卡。
編譯完成後會生成u-boot文件
運行:
qemu-system-arm -M vexpress-a9 -m 256M -nographic -kernel u-boot
或者
qemu-system-arm -M vexpress-a9 -m 256M -serial stdio -kernel u-boot
發現,如果沒有指定-nographics, 則必須要加-serial stdio才會有列印。
參數-m 256M為指定內存大小。-M 指定板卡的名稱, 支持的板卡可以用-M ?查看, 如下:
#qemu-system-arm -M ?
Supported machines are:
beagle Beagle board (OMAP3530)
beaglexm Beagle board XM (OMAP3630)
............
versatilepb ARM Versatile/PB (ARM926EJ-S)
versatileab ARM Versatile/AB (ARM926EJ-S)
vexpress-a9 ARM Versatile Express for Cortex-A9
vexpress-a15 ARM Versatile Express for Cortex-A15
正常運行的結果:
qemu-system-arm -M vexpress-a9 -m 256M -nographic -kernel u-boot
U-Boot 2012.04 (Jul 08 2012 - 00:14:08)
DRAM: 256 MiB
WARNING: Caches not enabled
Flash: ## Unknown flash on Bank 1 - Size = 0x00000000 = 0 MB
## Unknown flash on Bank 2 - Size = 0x00000000 = 0 MB
*** failed ***
MMC: MMC: 0
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: smc911x-0
Hit any key to stop autoboot: 0
VExpress#
VExpress# printenv
baudrate=38400
bootcmd=run bootflash;
bootdelay=2
bootflash=run flashargs; cp ${ramdisk_addr} ${ramdisk_addr_r} ${maxramdisk}; bootm ${kernel_addr} ${ramdisk_addr_r}
console=ttyAMA0,38400n8
。。。。。
注意:如果在檢測Flash failed後停止運行,是因為在 arch/arm/lib/board.c裡面 board_init_r()函數里檢測Flash失敗後調用了hang(), 暫時先把hang()去掉就可以運行下去了。
4. 編譯和運行Linux內核:
到http://www.kernel.org/下載最新的Linux內核源碼,我下載的是linux-3.4.4.tar.bz2. 解壓後修改Makefile, ARCH = arm, CROSS_COMPILE=arm-linux-gnueabi-
make vexpress_defconfig
(可以到 arch/arm/configs/ 目錄看到所有自帶的配置文件, 我們使用vexpress板卡默認的配置文件)
然後 make menuconfig --> System Type 把 Enable the L2x0 outer cache controller 取消, 否則Qemu會起不來, 暫時還不知道為什麼。
然後就可以make了。 最後會生成 arch/arm/boot/zImage 文件, 這就是我們需要的內核映像。
5. 製作根文件系統:
這部分網上有非常多的介紹,就不細說了。 大概流程是:先創建標準的Linux目錄結構, 到http://www.busybox.net/上下載最新的Busybox源代碼編譯安裝到剛才創建的目錄,
拷貝ARM的庫文件到相應目錄,在etc/目錄創建若干必須的啟動腳本和配置文件。 下面說一下怎麼生成一個ext3格式的文件系統映像:
dd if=/dev/zero of=a9rootfs.ext3 bs=1M count=32 //創建一個32M的空文件
mkfs.ext3 a9rootfs.ext3 //格式化為EXT3
sudo mount -t ext3 a9rootfs.ext3 a9rootdir/ -o loop //掛載到a9rootdir目錄
cp path/to/your/rootfs/* a9rootdir/ -Rf //拷貝文件到該目錄,相對於放到a9rootfs.ext3裡面
sudo umount a9rootdir/
至此a9rootfs.ex3 就包含了我們創建的根文件系統內容, 並且是ext3格式。
6. 使用Qemu運行Linux:
qemu-system-arm -kernel zImage -serial stdio -M vexpress-a9 -append "root=/dev/mmcblk0 console=ttyAMA0 console=tty0" -sd a9rootfs.ext3
Qemu可以模擬SD卡, 我們把a9rootfs.ext3作為一個SD設備,對應的設備文件即為 /dev/mmcblk0, 以它作為根文件系統啟動。 ttyAMA0: Serial console; tty0: Framebuffer Console. 最後放一張啟動後的圖片:
閱讀(2682) | 評論(0) | 轉發(0) |
0
上一篇:kernel 啟動過程之五, initcall 的來由, console 的初始化
下一篇:linux下jlink安裝
相關熱門文章
A sample .exrc file for vi e...
游標的特徵
IBM System p5 伺服器 HACMP ...
busybox的httpd使用CGI腳本(Bu...
Solaris PowerTOP 1.0 發布
linux dhcp pei roc
關於Unix文件的軟鏈接
求教這個命令什麼意思,我是新...
sed -e "/grep/d" 是什麼意思...
誰能夠幫我解決LINUX 2.6 10...
H. u-boot源代碼下載
http://www.denx.de/wiki/U-Boot 可以找到各種版本的uboot。要注意自己編譯器的版本噶,否則會出現煩人的兼容性問題
I. 開發跑腿系統源碼多少錢
一款app價格根據功能來定的,每個公司也是不一樣的價格,簡單到復雜,一兩萬的到十來萬的都不等,,小編推薦好急跑腿免費系統,這樣可以幫助使用者省時省力,
那麼小編跟你具體說一下開發跑腿APP時容易犯的幾個思維誤區:
1.以為做個軟體簡單,所以計劃需求的時候很隨心和模糊不清。
2.急著要報價,在對需求不確定的時候就要價格。然後就按這個價格開始做。
3.不知道功能是什麼,想做個商城缺說要做自己要的是淘寶。想要做的是淘寶缺說的是商城。
4.網站和手機App、跑腿APP區別搞不清楚。要做手機App、跑腿APP卻說自己要做網站。
5.以為所有軟體都有模板,而且模板都很便宜。
6.缺乏耐心,不明白也從未想過自己要做的東西有多復雜。
7.自己不知道要做的東西的具體功能,要靠軟體開發商來猜。而且還這時候就要報價。
J. 用服務寫USB的拔插程序。求詳細源代碼,能用能跑的啊
這種情況也可能有,但是還有一個情況,還有一款USB設備也是自己做的,但是用了CYPRESS提供的一個USB類對下位機進行訪問,這款USB設備的拔插是可以訪問的。而我前面所說的不能識別拔插的USB設備是用IOCONTROL對下位機訪問的,所以我懷疑可以在PC軟體上下手解決這個問題。又因為那個USB類無法在我前面提到的設備上應用,所以只能自己想辦法解決。中網互贏 手機客戶端