mount -o loop -t iso9660
mount iso mode
============================================================================================================================
ifconfig eth1 192.168.0.50
/etc/init.d/vsftpd start
============================================================================================================================
kernel:開啟character->Virtual terminal 出現(xiàn)Console drivers(選擇vga console text就會編譯出錯:charmap)
============================================================================================================================
vivi:開啟private data->support vivi private data會導(dǎo)致:
CONFIG_PARSE_PRIV_DATA=y
lib/priv_data/rw.c : init_priv_data(void) :
#ifdef CONFIG_PARSE_PRIV_DATA
ret_saved = load_saved_priv_data();
改寫內(nèi)核partition地址、大小
關(guān)閉CONFIG_PARSE_PRIV_DATA,就只遵循arch/s32410/smdk.c : mtd_partition_t default_mtd_partitions[]設(shè)置
priv_data應(yīng)該就是kernel/devices/mtd/nand/smc_s3c2410.c:
static struct mtd_partition smc_partitions[] = {
============================================================================================================================
C-A,S
使用load flash kernel x調(diào)用xmodem下載kernel
param show
param set xmodem_initial_timeout 3000000
編輯vivi/arch/s32410/smdk.c : { "xmodem_initial_timeout", 300000,
============================================================================================================================
make modules->生成module
============================================================================================================================
===========================================
IDE
===========================================
修改hdreg.h中各個hd寄存器地址---8000000。。。
hd.c-》line:285
unsigned short port;
port=HD_DATA;
付值錯誤,修改為unsigned long port;
打開
ATA/IDE/MFM/RLL support
IDE, ATA and ATAPI Block devices
Use old disk-only driver on primary interface
開通
CONFIG_BLK_DEV_HD_IDE=y
CONFIG_BLK_DEV_HD=y
//////////////////////////////////////////////////
kernel/include/asm-arm/ide.h :
#define ide_default_io_base(i)
#define ide_default_irq(b)
arm/arch-sh-s3c2410/ide.h:
修改成 hw->io_ports[IDE_DATA_OFFSET] =
修改base地址, 映射外部地址,ide.c:
base = ide_default_io_base(index);----------->>>>>base = ioremap(ide_default_io_base(index), 32);
加入外部中斷,ide-probe.c: init_irq---》》
int ret = set_external_irq(IRQ_EINT3, EINT_RISING_EDGE, EINT_PULLUP_DIS);
if (ret) return ret;
===============================================
FB
===============================================
出現(xiàn)Unable to handle kernel NULL pointer dereference at virtual address 00000024的錯誤,因為drivers/video/fbcon.c中:
#define fontwidthvalid(p,w) ((p)->dispsw->fontwidthmask & FONTWIDTH(w))與s3c2410fb.c中:
static struct s3c2410fb_mach_info xxx_stn_info __initdata = {
修改bpp->4解決問題
============================================================================================================================
打開
Memory Technology Devices (MTD)
RAM/ROM/Flash chip drivers
Support for RAM chips in bus mapping
就可以看到lcd顯示
============================================================================================================================
bulid in s3c2410 lcd modules才會顯示LOGO
LCD1_CLKVAL(x) 閃爍頻率
LCD5_BSWP 交換byte高低位
LCD5_HWSWP高低4比特交換
LCD5_INVVD反色
============================================================================================================================
4 bit:
修改s3c2410fb.c :
new_regs.lcdcon3 = (fbi->reg.lcdcon3 & ~LCD3_HOZVAL_MSK)
new_regs.lcdsaddr2 = LCDADDR_BASEL(
new_regs.lcdsaddr3 = LCDADDR_OFFSET(0) | (LCDADDR_PAGE((var->xres) * (inf->bpp)/ 16));
LOGO圖片能顯示
============================================================================================================================
lcdcon5:加入LCD5_BSWP
修改fbcon-cfb4.c:
#elif defined(__LITTLE_ENDIAN)后面的表為:
0x0000,0x0f00,0xf000,0xff00,
字符顯示正常
============================================================================================================================
18 bit:
bpp:
new_regs.lcdcon3 = (fbi->reg.lcdcon3 & ~LCD3_HOZVAL_MSK)
new_regs.lcdsaddr2 = LCDADDR_BASEL(
new_regs.lcdsaddr3 = LCDADDR_OFFSET(0) | (LCDADDR_PAGE((var->xres) * 24/ 16));
display->line_length = var->xres * 3;
fbi->max_bpp
修改LCD2_VSPW加大到(32),適合18位色顯示
============================================================================================================================
去掉vivi/arch/s3c2410/smdk.c :
char linux_cmd[] = "noinitrd root=/dev/bon/2 init=/linuxrc console=ttyS0";
console=ttyS0讓其不入串口控制臺,就可以進(jìn)入FB 控制臺
============================================================================================================================
busybox是多個linux命令集合,加入inittab文件到/etc中,使其不用defeault inittab值。
修改inittab中askfirst 為 once就可以直接進(jìn)入控制臺
============================================================================================================================
修改vivi/arch/s32410/smdk.c :
===============================================
NFS
===============================================
name
------------------------------------------------
vivi
param
kernel
root
param set linux_cmd_line "noinitrd root=/dev/bon/2 init=/linuxrc"
download redhat-config-nfs.rpm安裝后可以使用nfs
屏蔽/etc/initd/Rcs關(guān)于網(wǎng)絡(luò)部分后,
param set linux_cmd_line "root=/ nfsroot=192.168.0.50:/friendly-arm/root ip=192.168.0.69:192.168.0.50:192.168.0.50:255.255.255.0:matrix4.arm9.net:eth0:off"
param set linux_cmd_line "console=ttyS0 root=/ nfsroot=192.168.0.50:/friendly-arm/root ip=192.168.0.69:192.168.0.50:192.168.0.50:255.255.255.0:matrix4.arm9.net:eth0:off"
param set linux_cmd_line "noinitrd root=/dev/mtdblock/0 init=/linuxrc"
param set linux_cmd_line "console=ttyS0 root=/dev/bon/3 init=/linuxrc"
or
param set linux_cmd_line "root=/ nfsroot=192.168.0.50:/friendly-arm/root ip=192.168.0.69:192.168.0.50:192.168.0.50:255.255.255.0:matrix4.arm9.net:eth0:off"
param save
boot
進(jìn)入nfs系統(tǒng)
============================================================================================================================
cat /proc/mtd
PATH="/usr/local/arm/2.95.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin"
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin"
===============================================
MINIGUI
===============================================
出現(xiàn)checking for C compiler default output... configure: error: C compiler cannot create executables.
是沒有設(shè)置好編譯器路徑
PATH=$PATH:/usr/local/arm/2.95.3/bin
還要設(shè)置好編譯器include、lib位置
/*不推薦
編譯寫libminigui的sh
#!/bin/sh
rm config.cache config.status -f
CC=/friendly-arm/2.95.3/bin/arm-linux-gcc \
CFLAGS="-Os -D__Linux__ -I/friendly-arm/2.95.3/arm-linux/include -L/friendly-arm/2.95.3/arm-linux/lib " \
LDFLAGS="-Wl,-L/friendly-arm/2.95.3/arm-linux/lib" \
./configure --prefix=/friendly-arm/root/minigui \
*/
或者改menuconfig
path、-L、-I
打開lite\大開alone,關(guān)閉incore
============================================================================================================================
編寫mdeminigui的sh
#!/bin/sh
rm config.cache config.status -f
LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
CC=/usr/local/arm-linux/bin/arm-linux-gcc \
CFLAGS="-I/usr/local/arm-linux/arm-linux/include -L/usr/local/arm-linux/arm-linux/lib" \
LDFLAGS="-L/usr/local/arm-linux/arm-linux/lib" \
./configure --prefix=/usr/local \
============================================================================================================================
修改config.in
AC_CHECK_HEADERS($prefix/include/minigui/common.h, have_libminigui=yes, foo=bar)
#include <$prefix/include/minigui/common.h>
if test "x$lite_version" = "xyes"; then
else
============================================================================================================================
修改main.c中
#include <minigui/dti.c>
修改2個原程文件的fb0->fb/0
建立var/tmp
============================================================================================================================
minigui ftp上下載arm-linux-2.1.X編譯器才能編譯
============================================================================================================================
放置好所有的include lib文件在目標(biāo)文件系統(tǒng)上
============================================================================================================================
根據(jù)硬件特性修改libminigui1.2.3/etc/Minigui-3d.cfg和Minigui-flat.cfg文件中的
[fbcon]
defaultmode=1024x768-16bpp
為相應(yīng)的defaultmode=640x240-4bpp
============================================================================================================================
low level error:
copy\修改etc/minigui。cfg
設(shè)置正確鼠標(biāo)類型和路徑
#ial_engine=console
ial_engine=dummy
mdev=/dev/input/mouse0
#mtype=Microsoft
#mtype=NONE
mtype=PS2
#mtype=IMPS2
============================================================================================================================
===============================================
MicroWindow
===============================================
使用/usr/local/arm/2.95.3/arm-linux/lib/libz.a
makefile.rules加入-I/usr/local/arm/2.95.3/arm-linux/include -L/usr/local/arm/2.95.3/arm-linux/lib
////////////////////////////////
file:/friendly-arm/microwindow/microwindows-0.90/src/drivers/scr_fb.c
file:/friendly-arm/microwindow/microwindows-0.90/src/drivers/scr_rtems.c
file:/friendly-arm/microwindow/microwindows-0.90/src/engine/devopen.c
file:/friendly-arm/microwindow/microwindows-0.90/src/nanox/clientfb.c
查找fb0,改為fb/0
file:/friendly-arm/microwindow/microwindows-0.90/src/drivers/scr_fb.c
file:/friendly-arm/microwindow/microwindows-0.90/src/drivers/vtswitch.c
查找tty0,改為tty
或者/etc/rcS:
ln -s input/mouse0 psaux
ln -s sound/dsp dsp
ln -s sound/mixer mixer
ln -s fb/0 fb0
ln -s vc/0 tty0
ln -s vc/1 tty1
ln -s vc/2 tty2
///////////////////////////////
修改src/drivers/mou_ser.c:
#define MOUSE_PORT "/dev/input/mice"
#define MOUSE_TYPE "ps2"
就可以使用usb鼠標(biāo)
make xconfig
編譯nxlib首先編譯linux-native版的microwindow(使用其中的libnano-x.so)
修改nxlib makefile:MWIN=/mnt/ext/microwindow/microwindows-0.90/src/
MWPF_TRUECOLOR565 not MWPF_TRUECOLOR0565
/mnt/ext/nanoxgtk/pixil_oe-1.00/src/w3c-libwww-5.2.8/Library/src/HTWWWStr.c:360: the use of `tmpnam' is dangerous, better use `mkstemp'
/mnt/ext/nanoxgtk/pixil_oe-1.00//lib/libwwwcore.a(HTInet.o): In function `HTGetTmpFileName':
/mnt/ext/nanoxgtk/pixil_oe-1.00/src/w3c-libwww-5.2.8/Library/src/HTInet.c:599: the use of `tempnam' is dangerous, better use `mkstemp'
take place HTWWWStr:tmpname->mkstemp
HTInet:
//return tempnam(abs_dir, NULL);
-lmwengine -lmwdrivers -lmwfonts :microwin生成的
flnx要使用demo.sh才能進(jìn)
appsintoserve是把nanox加入apps里,可以直接在控制臺運行
freetype-1.3.1要用arm-linux編譯,
方法一,首先配置:
./configure --enable-share --enable-static --prefix=/usr/local/arm/2.95.3 --host=arm-linux --build=i386
然后修改config.cache:
ac_cv_prog_CC=${ac_cv_prog_CC=/usr/local/arm/2.95.3/bin/arm-linux-gcc}
ac_cv_prog_CPP=${ac_cv_prog_CPP='/usr/local/arm/2.95.3/bin/arm-linux-gcc -E'}
ac_cv_prog_RANLIB=${ac_cv_prog_RANLIB=/usr/local/arm/2.95.3/bin/arm-linux-ranlib}
然后再配置configure一次
再修改test/makefile,跳過編譯test program,make install(libSM)
方法2:
修改configure:
在檢測if test "$cross_compiling" = yes; then
前加入cross_compiling=no
后面補(bǔ)入cross_compiling=yes
CC=/usr/local/arm/2.95.3/bin/arm-linux-gcc ./configure --enable-share --enable-static --prefix=/usr/local/arm/2.95.3 --host=arm-linux --build=i386
修改ft_conf.h:
#define SIZEOF_INT 0----->4
#define SIZEOF_LONG 0----->4
配置microwin的config:
HAVE_FREETYPE_SUPPORT
INCFTLIB
LIBFTLIB
FREETYPE_FONT_DIR
#FREETYPE_FONT_DIR