惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Help Net Security
Help Net Security
G
Google Developers Blog
雷峰网
雷峰网
WordPress大学
WordPress大学
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Engineering at Meta
Engineering at Meta
Security Latest
Security Latest
T
Threat Research - Cisco Blogs
AWS News Blog
AWS News Blog
F
Full Disclosure
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Exploit Database - CXSecurity.com
J
Java Code Geeks
U
Unit 42
C
Cyber Attacks, Cyber Crime and Cyber Security
V
V2EX
C
Cisco Blogs
博客园 - 司徒正美
Project Zero
Project Zero
L
LINUX DO - 热门话题
阮一峰的网络日志
阮一峰的网络日志
Blog — PlanetScale
Blog — PlanetScale
Scott Helme
Scott Helme
A
About on SuperTechFans
Hugging Face - Blog
Hugging Face - Blog
S
Securelist
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏
S
Schneier on Security
G
GRAHAM CLULEY
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyberwarzone
Cyberwarzone
MongoDB | Blog
MongoDB | Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
T
Threatpost
Recorded Future
Recorded Future
C
CXSECURITY Database RSS Feed - CXSecurity.com
宝玉的分享
宝玉的分享
N
News and Events Feed by Topic
人人都是产品经理
人人都是产品经理
The Register - Security
The Register - Security
S
Security Archives - TechRepublic
博客园 - Franky
N
News | PayPal Newsroom
Simon Willison's Weblog
Simon Willison's Weblog
S
SegmentFault 最新的问题
W
WeLiveSecurity
A
Arctic Wolf
B
Blog

博客园 - sonach

osc环境搭建 用osc进行基于Mer的开发 Mer开发过程 放弃WINCE,拥抱Linux 移植Mer-qtmediahub到hi3716m(6):成果与感悟 移植Mer-qtmediahub到hi3716m(5):启动Mer-qtmediahub-hi3716m 移植Mer-qtmediahub到hi3716m(4):确定可写入hi3716m的文件系统镜像 移植Mer-qtmediahub到hi3716m(2):kernel配置 移植Mer-qtmediahub到hi3716m(1):mer-qtmediahub的rootfs制作 ubuntu11.10 nfs设置 移植Mer到海思的hi3716m平台 Ubuntu11.10中设置tftpd服务 Intel的Medfield手机平台功耗 用firefox参与freenode的IRC LG的googleTV赌注 HTML5及其对移动产业的意义[2011年VisionMobile十大文章之5] X的DISPLAY=:0.0 hardfp ABI理解 linux下写raw.bz2文件到SD卡
移植Mer-qtmediahub到hi3716m(3):在mer-qtmediahub中加入hi3716m的驱动
sonach · 2012-02-02 · via 博客园 - sonach

1)拷贝厂家rootfs中的/lib/modules/2.6.35.7_hi3716m目录到mer/lib/modules下。

2)将厂家rootfs/kmod目录到mer/lib/modules/2.6.35.7_hi3716m/kernel下,并且将kmod目录下的usb目录拿出来和kmod平级。最终kernel的目录结构如下:

zhanghui@ubt:~/Mer/hi3716m-adaptation/2.6.35.7_hi3716m/kernel$ls

drivers fs kmod lib net usb

3)在Mer/etc下创建modules.load.d目录,并且在该目录下新建文件loadko.conf,其内容如下:

hi_media

hi_c51

hi_mmz

hi_common

hi_dmac

hi_gpio

hi_gpioi2c

hi_i2c

tde

hi_otp

hi_ndpt

hi_mpi

hi_svdec

hi_tuner

hifb

hi_sci

hi_ir

hi_cipher

hi_e2prom

hi_keyled

hi_wdg

jpeg

png

ehci-hcd

ohci-hcd

tntfs

loadko.conf文件的内容参考自厂家rootfs/kmod/load脚本。

loadko.conf的作用是,Mer在启动时会根据modules-load.d目录下的*.conf文件加载驱动。

4)在Mer/etc/modprobe.d下增加一个或者几个*.conf文件。这里的conf文件用于指定insmod/etc/modules-load.d目录下的*.conf文件时,需要指定的参数。

我在/etc/modprobe.d下增加了一个probeko.conf文件,里面的内容是:

optionshi_common LogBufSize=0x80000

optionshi_gpioi2c gpioidclock=11 clockbit=3 gpioiddata=12 databit=5i2cmode=2

optionshifb display="on"

这就是说,Mer先找到/etc/modules-load.d/loadko.conf下,发现有”hifb”;然后找到/etc/modprobe.d/probeko.conf下有”optionshifb display="on"”,于是实际执行的命令是:

insmodhifb.ko display=”on”

5)确定驱动依赖关系

驱动依赖关系在/lib/modules/2.6.35.7_hi3716m/modules.dep中指定。由于在2.6.35.7_hi3716mkernel目录加入了kmod下的ko文件,因此,modules.dep文件应该更新。

但怎么更新呢?

一开始在ks文件的%post中加入了”depmod-a”,但启动后modules.dep没改变。(现在想来,游客能应该改成”/sbin/depmod-a”)。

后来用了一个土办法:

先启动Mer,然后执行/sbin/depmod-a,将生成的modules.dep文件拷贝出来到PCMer2.6.35.7_hi3716m下面,然后重新制作jffs2镜像。

6)加入getty

Merrootfs下,执行:

ln -s../serial-getty@.service./lib/systemd/system/getty.target.wants/serial-getty@ttyAMA0.service

否则Mer启动后不会出现”login:”提示。

由于bootargs指定的ttyttyAMA0,于是需要在/etc/securetty文件中加入”ttyAMA0”这一行。

7)加入xorg的配置

Mer/etc/X11/xorg.conf.d下创建*.conf文件,比如hi3716m-fb.conf

Section"Monitor"

Identifier"Configured Monitor"

EndSection

Section"Screen"

Identifier"Default Screen"

Device"Configured Video Device"

DefaultDepth16

SubSection"Display"

Depth 16

# Modes "1024x768"

EndSubSection

EndSection

Section"Device"

Identifier"Configured Video Device"

Driver"fbdev"

Option"fbdev" "/dev/fb2"

EndSection

注意:

如果不指定displaydepth = 16,则屏幕上不显示;

如果不制定Option"fbdev" "/dev/fb2",那么xorg会默认打开fb0。而hi3716mfb2对应高清输出,即YPbPr输出。如果接AV输出,指定/dev/fb0即可。