栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

记录Linux学习

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

记录Linux学习

        系统移植学蒙蔽了。终于可以开始学驱动了。

记录一下遇到的问题,备忘。

IMX6ULL mini跟教程一直linux内核修改网络驱动出现问题-OpenEdv-开源电子网

正点原子的LCD口和模拟开关和网口有问题,LCD输出能力过强会影响eth(因为模拟开关?),eth不稳定。修改设备树,降低IO能力,一般会恢复正常。

ps:问题已找到,屏幕线太靠近网口了

        zImage生成在kernel/arch/arm/boot下,设备树在/kernel/arch/arm/boot/dts下

        uboot和Linux的网络环境变量的设置,ipaddr ,ethaddr ,gatewayip ,netmask ,serverip 

设置之前记得ifconfig和ping一下ip地址,看看是否被占用,否则可能出现ethx up和down循环出现的情况,网络eth不稳定前提排除硬件因素。

        ping后结果为badip, 可能是DNS域名解析错误,etc/resolv.conf内设置。

        man命令很好用,man -123 调用  1内核 2系统 3用户。

目前从sd卡启动uboot,然后TFTP下载zImage和.dtb,从网络nfs挂载文件系统,比较方便调试

bootcmd=tftp 80800000 zImage;tftp 83000000 imx6ull-alientek-emmc.dtb;bootz 80800000 - 83000000;
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.1.103:/home/alientek/linux/nfs/my-rootfs ip=192.168.1.134:192.168.1.103:192.168.1.1:255.255.255.0::eth0:off'

linux下字符驱动

首先需要注册设备号     自己定义构建一个模块结构体 --其中包含 设备号,cdev,class,device等

设备号---注册设备号,编号  --- 12主---20从---

然后是cdev
struct cdev {
    struct kobject kobj;
    struct module *owner;
    const struct file_operations *ops;
    struct list_head list;
    dev_t dev;
    unsigned int count;
}  创建cdev,将*ops纳入其中,在调用cdev_add加入cdev列表

class类 ---class_create(THIS_MODULE,NEWCHRDEVLED_NAME)
if(IS_ERR(obj.class))
        return PTR_ERR(obj.class);判断合法指针

device设备--- device_create(struct class *cls, struct device *parent,
                 dev_t devt, void *drvdata,
                 const char *fmt, ...)
创建device需要class,父设备,设备号,xxx,驱动名------由此才/dev/下才有节点

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/334239.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号