ubooteth0speed10m
1. tp4310用TTL線修復,怎麼進不了uboot模式
發現原因了,數據發送這根線接觸不良。弄好後可刷機。可最後把uboot刷壞了,ttl也無法修復了,這下全完了!!:'(:'(
2. 求助 關於uboot.BIN 燒寫uImage到開發板的內存中
直接文件系統列舉吧燒寫uboot、內核及文件系統 :1、uboot燒寫
載Uboot兩步驟第步uboot載系統擴展RAM並運行第二步通內存運行uboot整uboot載內存再燒寫nandflash
第步 載uboot擴展RAM
首先使用短路塊選擇系統內部啟復位或者電串口軟體(115200 8 n 1)看列印信息LPC31xx READY FOR PLAIN IMAGE>使用串口軟體發送文件選擇發送u-boot-init.bin再發送u-boot.binRAM啟uboot列印輸啟信息並進行倒計發送任意字元給系統停止計關閉串口軟體使用超級終端連接系統
第二步 燒寫ubootnandflash
超級終端輸入loady命令再使用傳送/發送文件選擇Ymodem協議發送u-boot.bin接收完先擦除nand erase全擦掉(用給參數)使用使用參數指定區域般第要全擦使用nand_paramsflash信息寫入其使用nand write 0x30001000 0x4000 0x100000
其0x30001000 uboot內存址;
0x4000 ubootflash存放起始址需要根據實際區情況定;
0x100000 uboot於實際;
至uboot寫入nandflash短路跳線掉使其nandflash啟
2、內核燒寫
uboot啟倒計擊任意鍵停止輸入loady與uboot燒寫相似使用命令主要:nand erase 0x200000(址) 0x200000()
nand write 0x30001000 0x200000 0x200000
3、文件系統燒寫
文件系統燒寫通與內核相似使用串口燒寫通掛載nfs使用mtd_debug 工具燒寫由於文件系統較使用第種式慢些
串口燒寫使用命令
loady
nand erase 0x600000 0x3a00000(目前區情況)
nand write 0x30001000 0x600000 0x800000(實際)
使用nfs燒寫用命令
mtd_debug erase /dev/mtd2 0 0x3a00000
mtd_debug write /dev/mtd2 0 0x800000 ubi.img
各項含義參考mtd_debug 幫助直接mtd_debug 即獲取說明其len使用十進制數uboot加0x認十六進制
4、啟掛載文件系統選項
uboot通環境變數設置啟選項般需要配置掛載文件系統nfsubi及內核啟選項
掛載nanflashubifs:
setenv bootargs console=ttyS0,115200n8 ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs;
掛載129.1.4.199/rfs/rootfs並且本機ip設129.1.31.33等:
setenv bootargs noinitrd root=/dev/nfs console=ttyS0,115200n8 nfsroot=129.1.4.199:/rfs/rootfs,proto=tcp,nfsvers=3,nolock ip=129.1.31.33:129.1.4.199:129.1.88.1:255.255.0.0::eth0:off
啟內核選項:
setenv bootcmd nand read 0x30001000 0x200000 0x200000\; bootm 0x30001000\;
修改uboot環境變數都需要saveenv命令保存修改
3. 在ubuntu下使用什麼工具對uboot及內核進行燒寫
tftp比較通用的 網路燒寫 DNW USB燒寫
4. linux下Uboot終端命令行參數輸入過長
修改成這樣試試(用分割了一下)
setenvbootargs"root=/dev/nfsnfsroot=192.168.1.118:
/root/work/nfsip=192.168.0.119:192.168.1.118:192.168.1.1:
255.255.255.0:witech.com.cn:eth0:offconsole=ttySAC2,115200"
5. 我的友善之臂micro2440開發板,燒寫uboot和Linux內核後我想設置nfs網路根文件系統,但是一直有問題。
linux-2.6.35在fs2410開發板啟動後,通過nfs掛載文件系統,但是rtc不能用,也會在掛載文件系統之前列印如下提示信息:
TCP cubic registered
NET: Registered protocol family 1
RPC: Registered udp transport mole.
RPC: Registered tcp transport mole.
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
IP-Config: Complete:
device=eth0, addr=192.168.20.253, mask=255.255.255.0, gw=192.168.20.1,
host=thomas_fs2410, domain=, nis-domain=(none),
bootserver=192.168.20.192, rootserver=192.168.20.192, rootpath=
Looking up port of RPC 100003/2 on 192.168.20.192
Looking up port of RPC 100005/1 on 192.168.20.192
VFS: Mounted root (nfs filesystem).
Mounted devfs on /dev
Freeing init memory: 184K
解決方案:
1. 內核配置選項
--- Real Time Clock
[*] Set system time from RTC on startup and resume
(rtc0) RTC used to set the system time
[ ] RTC debug support
*** RTC interfaces ***
[*] /sys/class/rtc/rtcN (sysfs)
[*] /dev/rtcN (character devices)
[ ] RTC UIE emulation on dev interface
*** on-CPU RTC drivers ***
<*> Samsung S3C series SoC RTC
2. linux kernel 中 已經支持S3C2410的RTC,但是並沒有添加到平台設備初始化數組中,所以系統啟動時並不會初始化這一部分,需要修改文件mach-smdk.c
static struct platform_device *smdk2410_devices[] __initdata = {
&s3c_device_ohci,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_i2c0,
&s3c_device_iis,
&s3c_device_rtc, //新增代碼
};
3. 創建設備節點,在文件系統/dev目錄下執行:
sudo mknod rtc c 10 135
4. 重新編譯內核,查看啟動信息
S3C24XX RTC, (c) 2004,2006 Simtec Electronics
s3c-rtc s3c2410-rtc: rtc disabled, re-enabling
s3c-rtc s3c2410-rtc: rtc core: registered s3c as rtc0
這里說明rtc驅動起來可以正常工作了
S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled
No device for DAI UDA134X
No device for DAI s3c24xx-i2s
ALSA device list:
No soundcards found.
TCP cubic registered
NET: Registered protocol family 17
s3c-rtc s3c2410-rtc: hctosys: invalid date/time
以上信息說明當前 RTC 時間invalid , RTC 初始時間為 Wed Dec 31 23:59:59 1969 ;
從內核函數 int rtc_valid_tm(struct rtc_time *tm) ,可以看出,當 year 小於 1970 時,認為是時間 invalid ,函數返回 -EINVAL ;
drivers/rtc/rtc-lib.c
/*
* Does the rtc_time represent a valid date/time?
*/
int rtc_valid_tm(struct rtc_time *tm)
{
if (tm->tm_year < 70
|| ((unsigned)tm->tm_mon) >= 12
|| tm->tm_mday < 1
|| tm->tm_mday > rtc_month_days(tm->tm_mon, tm->tm_year + 1900)
|| ((unsigned)tm->tm_hour) >= 24
|| ((unsigned)tm->tm_min) >= 60
|| ((unsigned)tm->tm_sec) >= 60)
return -EINVAL;
return 0;
}
EXPORT_SYMBOL(rtc_valid_tm);
下面來驗證一下這個想法
# hwclock
Wed Dec 31 23:59:59 1969 0.000000 seconds
# date
Thu Jan 1 00:06:58 UTC 1970
系統時間是通過 date 來設置的, RTC 時間是通過 hwclock 來設置的。開機時系統時間首先通過 RTC 來獲得,RTC沒有設置時,系統時間也會使用Wed Dec 31 23:59:59 1969。
# hwclock --help
BusyBox v1.9.2 (2008-04-01 21:32:34 CST) multi-call binary
Usage: hwclock [-r|--show] [-s|--hctosys] [-w|--systohc] [-l|--localtime] [-u|--utc] [-f FILE]
Query and set a hardware clock (RTC)
Options:
-r Read hardware clock and print result
-s Set the system time from the hardware clock
-w Set the hardware clock to the system time
-u The hardware clock is kept in coordinated universal time
-l The hardware clock is kept in local time
-f FILE Use the specified clock (e.g. /dev/rtc2)
# hwclock -s
hwclock: settimeofday() failed: Invalid argument
# hwclock -w
s3c2410-rtc s3c2410-rtc: rtc only supports 100 years
hwclock: RTC_SET_TIME: Invalid argument
以上錯誤信息都是因為 year 設置不當引起的。沒有設置 RTC , RTC 也不會啟動計時。
下面首先設置正確的系統時間,然後將系統時間傳遞給 RTC 。
# date 040612282008.20
Sun Apr 6 12:28:20 UTC 2008
# hwclock -w
# hwclock
Sun Apr 6 12:29:01 2008 0.000000 seconds
# hwclock
Sun Apr 6 12:30:15 2008 0.000000 seconds
Ok , RTC 開始工作了!
為了使系統時間和 RTC 時間同步,可以在初始化文件中添加命令
Hwclock –s
使每次開機時讀取 RTC 時間,並同步給系統時間。
在 etc/init.d/rcS 中添加
/bin/hwclock -s
時間設置的相關命令(轉載)
1. 在虛擬終端中使用date 命令來查看和設置系統時間
查看系統時鍾的操作:
# date
設置系統時鍾的操作:
# date 091713272003.30
通用的設置格式:
# date 月日時分年. 秒
2. 使用hwclock 或clock 命令查看和設置硬體時鍾
查看硬體時鍾的操作:
# hwclock --show 或
# clock --show
2003年 09月 17日 星期三 13 時24 分11 秒 -0.482735 seconds
設置硬體時鍾的操作:
# hwclock --set --date="09/17/2003 13:26:00"
或者
# clock --set --date="09/17/2003 13:26:00"
通用的設置格式:hwclock/clock --set --date=「 月/ 日/ 年時:分:秒」 。
3. 同步系統時鍾和硬體時鍾
Linux 系統( 筆者使用的是Red Hat 8.0 ,其它系統沒有做過實驗) 默認重啟後,硬體時鍾和系統時鍾同步。如果不大方便重新啟動的話( 伺服器通常很少重啟) ,使用clock 或hwclock 命令來同步系統時鍾和硬體時鍾。
硬體時鍾與系統時鍾同步:
# hwclock --hctosys
或者
# clock --hctosys
上面命令中,--hctosys 表示Hardware Clock to SYStem clock 。
系統時鍾和硬體時鍾同步:
# hwclock --systohc
或者
# clock --systohc
使用圖形化系統設置工具設置時間
參考:http://blogold.chinaunix.net/u2/63560/showart_518707.html
6. openwrt系統中,uboot在引導內核和掛載文件系統的時候出現問題,跪求大俠指點!!
VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
看起來是文件系統的問題