您尚未登录。

#1 全志 SOC » F1C200S buildroot的交叉编译工具链编译驱动报错(已解决) » 2024-05-10 10:09:40

wwddgod
回复: 1

在makefile中设置了buildroot编译出来的交叉编译链,但是用这个编译链编译驱动会报错

KERNEL_DIR=/home/test/lc/buildroot/output/build/linux-5.4.99/  #内核源码路径

ARCH=arm64
CROSS_COMPILE=/home/test/lc/buildroot/output/host/bin/arm-buildroot-linux-gnueabi
export  ARCH  CROSS_COMPILE

obj-m := inwiegand.o
all:
	$(MAKE) -C $(KERNEL_DIR) M=$(CURDIR) modules

.PHONE:clean

clean:
	$(MAKE) -C $(KERNEL_DIR) M=$(CURDIR) clean

报错信息如下

test@lc-es-vm:~/lc/drivers/wiegend_driverw-master/driver$ make
make -C /home/test/lc/buildroot/output/build/linux-5.4.99/   M=/home/test/lc/drivers/wiegend_driverw-master/driver modules
make[1]: Entering directory `/home/test/lc/buildroot/output/build/linux-5.4.99'
  CC [M]  /home/test/lc/drivers/wiegend_driverw-master/driver/inwiegand.o
arm-buildroot-linux-gnueabi-gcc.br_real: 错误:unrecognized command line option ‘-mgeneral-regs-only’
make[3]: *** [/home/test/lc/drivers/wiegend_driverw-master/driver/inwiegand.o] 错误 1
make[2]: *** [/home/test/lc/drivers/wiegend_driverw-master/driver] 错误 2
make[1]: *** [sub-make] 错误 2
make[1]: Leaving directory `/home/test/lc/buildroot/output/build/linux-5.4.99'
make: *** [all] 错误 2

如果不是用这个编译链,应该用哪个呢,我buildroot里没有设置使用外部工具链。
奇怪的是我把这个驱动放到内核目录里,buildroot就可以正常编译通过。

问题已经解决,是我的makefile里cpu架构没改,还是64位!

#2 Re: 全志 SOC » F1C200S 改为电阻触摸屏 » 2024-05-10 08:23:01

[*] 缺少匹配的标签 [/*]
发帖的时候一直报这个错误是什么意思?

#3 全志 SOC » F1C200S 改为电阻触摸屏 » 2024-05-10 08:19:50

wwddgod
回复: 4
1)内核设备树配置

/home/test/lc/buildroot/board/widora/mangopi/r3/devicetree/linux/devicetree.dts

rtp@48 {
    compatible = "ti,tsc2007";
    reg = <0x48>;
    interrupt-parent = <&pio>;
    interrupts = <4 12 IRQ_TYPE_EDGE_FALLING>;
    gpios = <&pio 4 12 GPIO_ACTIVE_LOW>;
    pendown-gpio = <&pio 4 12 GPIO_ACTIVE_LOW>;
    ti,x-plate-ohms = <660>;
    wakeup-source;
    status = "okay";
};

2)内核配置

make linux-menuconfig

Device Drivers  --->
    Input device support  --->
        [*]   Touchscreens  --->
            <*>   TSC2007 based touchscreens

3)buildroot配置

在buildroot目录下输入menu menuconfig
Target packages  --->
    Libraries  --->
        Hardware handling  --->
            [*] tslib

4)重新构建内核

./rebuild-kernel.sh

5)在开发板命令终端输入:

vi /etc/profile

6)在最后一行插入,这一步应该可以在编译之前修改文件系统里的文件

export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0

7)校准触摸屏
系统重新运行起来之后,在开发板命令终端输入:ts_calibrate。然后在屏幕上操作校准触摸屏。此时,显示屏模组驱动已经全部完成。

8)测试触摸屏,在开发板命令终端分别输入:ts_print、ts_test等命令,会在屏幕上或者命令终端看到不同的效果。

#4 全志 SOC » F1C200S buildroot更改启动方式 » 2024-05-10 08:16:26

wwddgod
回复: 0

1、buildroot常用make 命令

常用命令

意义
make menuconfig    buildroot菜单
make uboot-menuconfig

uboot菜单
make linux-menuconfig

linux菜单
make busybox-menuconfig

busybox菜单
make    编译buildroot
make linux-rebuild

重新编译linux
make uboot-rebuild

重新编译uboot
make busybox-rebuild

重新编译busybox
make 软件包-rebuild

对于任何软件包编译
make clean    清除编译
make distclean    清除编译以及配置
原文链接:https://blog.csdn.net/qq_20017379/article/details/127154287

2、CherryPi-F1C200S 樱桃派改成从spi-nand启动,默认的工程是从sd卡启动

/home/test/lc/buildroot/board/widora/mangopi/r3/devicetree/linux/devicetree.dts

修改启动参数

chosen {
        #address-cells = <1>;
        #size-cells = <1>;
        ranges;
        //for NAND or Nor
        bootargs = "console=ttyS0,115200 rootwait init=/preinit root=/dev/mtdblock2 rootfstype=squashfs overlayfsdev=/dev/mtdblock3";
        //for sd-card
        //bootargs = "console=ttyS0,115200 earlyprintk rootwait init=/preinit root=/dev/mmcblk0p3";

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn