免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
05年學(xué)習(xí)arm?linux的筆記
From:http://blog.sina.com.cn/s/blog_537bca2a010007p1.html

應(yīng)該是04年開始做linux,開始一段時間也裝過wince,不過還是linux適合小公司。那時候認(rèn)識了楊斌,光顧了他前期的產(chǎn)品,現(xiàn)在他的2440也不錯。。這個毅然辭職做生意的,開了基地后只剩幾百元,到現(xiàn)在小有規(guī)模了,也是不容易啊。
linux,做出xfree86的移植后就再也沒有研究了。其中各種GUI都裝了一遍,也移植了幾個軟件,不過還是處于入門階段。筆記很凌亂,該做wince,就不再整理了。

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,  NULL },中300000-》3000000延長超時時間
============================================================================================================================
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)  ((ide_ioreg_t)0)---->>>>#define ide_default_io_base(i) ((ide_ioreg_t)0x8000000
#define ide_default_irq(b)  (IRQ_EINT3)

arm/arch-sh-s3c2410/ide.h:
修改成 hw->io_ports[IDE_DATA_OFFSET] =  reg + n*2;(2410 16位尋址數(shù)據(jù)舍去最低一位,從第2位開始)

修改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 = {
     pixclock: 174757,  bpp:  16,//有不同
修改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)
      | LCD3_HOZVAL((var->xres) * (inf->bpp) / 16 - 1);
new_regs.lcdsaddr2 = LCDADDR_BASEL(
  (((unsigned long)VideoPhysicalTemp >> 1) + ((var->xres) * (inf->bpp) / 16 * (var->yres))));
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,
    0x000f,0x0f0f,0xf00f,0xff0f,
    0x00f0,0xf0f0,0x0ff0,0xfff0,
    0x00ff,0x0fff,0xf0ff,0xffff
字符顯示正常

============================================================================================================================
18 bit:

bpp:  16,
  lcdcon1 : LCD1_BPP_16T | LCD1_PNR_TFT | LCD1_CLKVAL(3),
  lcdcon2 : LCD2_VBPD(1) | LCD2_VFPD(2) | LCD2_VSPW(32),
  lcdcon3 : LCD3_HBPD(6) | LCD3_HFPD(2),
  lcdcon4 : LCD4_HSPW(4),
  lcdcon5 : LCD5_FRM565 | LCD5_INVVLINE | LCD5_INVVFRAME | LCD5_HWSWP | LCD5_PWREN,
 
new_regs.lcdcon3 = (fbi->reg.lcdcon3 & ~LCD3_HOZVAL_MSK)
      | LCD3_HOZVAL((var->xres) * 24/ 16 - 1); //debug
new_regs.lcdsaddr2 = LCDADDR_BASEL(
  (((unsigned long)VideoPhysicalTemp >> 1) + ((var->xres) * 24 / 16 * (var->yres))));
new_regs.lcdsaddr3 = LCDADDR_OFFSET(0) | (LCDADDR_PAGE((var->xres) * 24/ 16));

display->line_length = var->xres * 3;

fbi->max_bpp  = 24;
修改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 :  "boot_delay"為1直接進(jìn)入kernel,0直接進(jìn)入vivi shell
===============================================
NFS
===============================================
name              offset        size        flag
------------------------------------------------
vivi            : 0x00000000    0x00020000     128k
param           : 0x00020000    0x00010000      64k
kernel          : 0x00030000    0x001d0000       1M+832k
root            : 0x00200000    0x01000000      16M

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 \
    --build=i386-linux \
    --host=arm-linux \
    --target=arm-linux \
    --disable-shared \
    --enable-static \
    --disable-lite \
    --disable-incoreres \
    --enable-flatstyle \
    --disable-newgal \
    --enable-fblin1l \
    --enable-fblin8 \
    --enable-fblin16 \
    --enable-fblin4 \
    --enable-dummyial \
    --enable-grayscreen \
    --enable-tinyscreen \
    --disable-vbfsupport
*/   
或者改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 \
    --build=i386-linux \
    --host=arm-linux \
    --target=arm-linux
============================================================================================================================
修改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
    LIBS="$LIBS -lminigui -lm -lmgext -lc -lvcongui -L$prefix/lib"
else
    CFLAGS="$CFLAGS -D_REENTRANT -I$prefix/include"
    LIBS="$LIBS -lminigui -lm -lmgext -lc -lpthread -ljpeg -lvcongui -L$prefix/lib"
============================================================================================================================
修改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/
   NOTE "make install" WILL BY DEFAULT OVERWRITE THE FOLLOWING FILES:
    /usr/X11R6/lib/libX11.so.*
  
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);
    return abs_dir;
   
-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
    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
前加入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    = Y
INCFTLIB                 = /friendly-arm/microwindow/freetype/include
LIBFTLIB                 = /friendly-arm/microwindow/freetype/lib/libttf.so
FREETYPE_FONT_DIR        = "/usr/local/microwin/fonts"(在目標(biāo)機(jī)上建立目錄,copy相應(yīng)字庫)
#FREETYPE_FONT_DIR        = "fonts/truetype"(這個是使用當(dāng)前目錄/fonts/作為字庫目錄)

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
LTP在arm-linux-交叉編譯環(huán)境上的安裝
嵌入式linux根文件系統(tǒng)制作(經(jīng)典)
OK6410 u-boo t移植1
移植QT5.6到嵌入式開發(fā)板(史上最詳細(xì)的QT移植教程)
Qt 4.6.0 嵌入式開發(fā)環(huán)境的搭建、移植
交叉編譯模擬環(huán)境sbox2的使用
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服