This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/TMDSLCDK138:在内核中添加 GPIO

Guru**** 2618185 points

Other Parts Discussed in Thread: TMDSLCDK138, OMAP-L138

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/579081/linux-tmdslcdk138-adding-gpio-to-kernel

器件型号:TMDSLCDK138
主题中讨论的其他器件:OMAP-L138

工具/软件:Linux

您好!

我有 个 TMDSLCDK138板、其原 Arago SDK 包含在评估套件的 sdcard 中。

问题是我无法使用 GPIO、因为我没有/sys/class/gpio 文件夹...

重新编译内核并启用 GPIO 的步骤是什么?

提前感谢您!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您需要修改您的 defconfig 文件。 默认情况下、.config 具有:
    未设置# CONFIG_GPIO_SYSFS

    如果您检查 drivers/gpio/gpioib.c、您将看到在以下位置内启用了/sys/class/gpio 条目:
    #ifdef CONFIG_GPIO_SYSFS
    预处理器指令。

    因此、您需要添加:
    #define CONFIG_GPIO_SYSFS=y

    arch/arm/configs/tisdk_omapl138-lcdk_defconfig 中。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您的回答。 我进行了更改并在 menuconfig 中导入了配置文件,如下所示:

    sudo make O=/home/BOB/omapbuild/omap_linux menuconfig 

    但当我这么做时:

    sudo make O=/home/BOB/omapbuild/omap_linux 

    我有此错误:

    make[2]:对于"全部"不做任何操作。
    使用/opt/ti/mcsdk_1_01_00_02/board-support/linux-3.3-psp03.22.00.06.sdk 作为内核
    GEN 的源代码 /home/BOB/omapbuild/omap_linux/Makefile
    CHK include/Linux/version.h
    CHK include/generated /utsrelease.h
    调用/opt/ti/mcsdk_1_01_00_02/board-support/linux-3.3-psp03.22.00.06.sdk/scripts/checksyscalls.sh
    CHK include/genered/compile.h
    VDSOSYM arch/x86/vdso/vdso-syms.lds
    lds lds arch/x86/vdso/built-in.o
    LD arch/x86/built-ine.o
    通道 内核/config_data.h
    CC drivers/tty/serial/8250/825.o
    /opt/ti/mcsdk_1_01_00_02/board-support/linux-3.3-psp03.22.00.06.sdk/drivers/tty/serial/8250/8250.c:44:26:致命错误:mach/cputype.h:没有
    终止此类文件或目录编译。
    /opt/ti/mcsdk_1_01_00_02/board-support/linux-3.3-psp03.22.00.06.sdk/scripts/Makefile.build
    
    
    
    
    
    /opt/ti/mcsdk_1_01_00_02/board-support/linux-3.3-psp03.22.00.06.sdk/scripts/Makefile.build:305:目标“驱动程序/TTY/串行/8250/825.o”的配方失败 make[5]:***[drivers/TTY/串行/8250/825.o]错误1 /opt/ti/mcsdk_1_01_00_02/board-support/linux-3.3-psp03.22.00.06.sdk/scripts/Makefile.build
    
    /opt/ti/mcsdk_1_01_00_02/board-support/linux-3.3-psp03.22.00.06.sdk/Makefile:441:目标“驱动程序/TTY/串行/8250'的配方失败 make[4]:***[drivers/TTY/串行/8250]错误2:/opt/ti/mcsdk_1_01_00_02/board-support/linux-3.3-psp03.22.00.06.sdk/scripts/Makefile.build:“TTY/串行驱动程序失败驱动程序”:“TTY/“TTY/串行驱动程序”错误2::“TTY/驱动程序失败” 目标"驱动程序"的配方失败
    make[1]:***[驱动程序]错误2
    Makefile:130:目标'sub-make'的配方失败
    make:***[子制造]错误2 

    我尝试了以下操作:

    sudo ls -s /opt/ti/mcsdk_1_01_00_02/board-support/linux-3.3-psp03.22.00.06.sdk/arch/arm/mach-omap1/include/mach /usr/src/linux-headers-4.4.0-31/arch/arm/include 

    因为这是解决类似错误的方法: http://forum.odroid.com/viewtopic.php?f=112&t=11970

    感谢你的帮助

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    有什么想法吗?

    谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我将在我的身边尝试一下、并告诉您结果。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    感谢你的帮助!

    此致、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    这对我来说很有效。

    我修改了 arch/arm/configs/tisdk_omap138-lcdk_defconfig、如下所示:
    编号
    #启用设备驱动程序-> PPS 以查看 PTP 时钟选项。
    编号
    CONFIG_ARCH_Require _GPIOLIB=y
    CONFIG_GPIOLIB=y
    未设置# CONFIG_DEBUG_GPIO
    -未设置# CONFIG_GPIO_SYSFS
    + CONFIG_GPIO_SYSFS=y

    并使用以下步骤重建内核:
    x0155517@MMS:~$ cd ti/mcsdk_1_01_00_02/
    x0155517@MMS:~/ti/mcsdk_1_01_00_02导出 arch=arm
    x0155517@MMS:~/ti/mcsdk_1_01_00_02导出路径=/home/x0155517/ti/mcsdk_1_01_00_02/linux-devkit/sysroots/i686-arago-linux/usr/bin:$path
    x0155517@MMS:~/ti/mcsdk_1_01_00_02 export cross_compile=arm-arago-linux-gnueabi-
    x0155517@MMS:~/ti/mcsdk_1_01_00_02 cd board-support/linux-3.3-psp03.22.00.06.sdk/
    x0155517@MMS:~/ti/mcsdk_1_01_00_02/board-support/linux-3.3-psp03.22.00.06.sdk make tisdk_omapl138-lcdk_defconfig
    x0155517@MMS:~/ti/mcsdk_1_01_00_02/board-support/linux-3.3-psp03.22.00.06.sdk make uImage

    之后、我复制了 SDCard (引导分区)上新构建的内核映像并启动了 OMAP-L138 LCDK、因此我在 sys/class 中获得了 GPIO 条目:
    root@omapl138-lcdk:/sys/class ls
    ATA_DEVICE GPIO MDIO_BUS 网络 SCSI_generic UDC
    ATA_LINK 图形 内存 稳压器 SCSI_HOST USB_device
    ATA_PORT 其他 I2C 适配器 RTC 声音 VC
    BDI I2C-DEV MMC_HOST SCSI_DEVICE TTY vtconsole
    块 输入 MTD SCSI_disk ubi
    root@omapl138-lcdk:/sys/class CD GPIO
    root@omapl138-lcdk:/sys/class/gpio ls
    导出 gpiochip128 gpiochip64不导出
    gpiochip0 gpiochip32 gpiochip96
    root@omapl138-lcdk:/sys/class/gpio

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    感谢您的帮助,我必须安装 zlib1g:i386,但在 make uImage 过程中出现此问题:
    Bob@Bob-VirtualBox:~/ti/mcsdk_1_01_00_02/board-support/linux-3.3-psp03.22.00.06.sdk make uImage
    检查 include/linux/version.h
    检查 包含/生成/ utsrelease.h
    make[1]:'include/generated /mach-types.h'是最新的。
    抄送 kernel/bounds.s
    通用 包含/生成/ bounds.h
    抄送 arch/arm/kernel/asm-offsets.s
    通用 包含/生成/ asm-offsets.h
    调用脚本/checksyscalls.sh
    HOSTCC 脚本/genksyms/genksyms.o
    发运的脚本/genksyms/lex.lex.c
    已发送脚本/genksyms/keywords.hash-c
    出厂脚本/genksyms/parse.tab.h
    HOSTCC 脚本/genksys/lex.lex.o
    已发送脚本/genksyms/pars.tab.c
    HOSTCC 脚本/genksyms/pars.tab.o
    HOSTLD 脚本/genksyms/genksyms
    抄送 scripts/mod/empty.o
    HOSTCC 脚本/mod/mk_elfconfig
    MKELF 脚本/mod/elfconfig.h
    HOSTCC 脚本/mod/file2alias.o
    HOSTCC 脚本/mod/modpost.o
    HOSTCC 脚本/mod/sumversion.o
    HOSTLD 脚本/mod/modpost
    HOSTCC 脚本/kallsyms
    HOSTCC 脚本/ makeash
    HOSTCC 脚本/bin2c
    抄送 init/main.o
    检查 包含/生成/ compile.h
    UPD 包含/生成/ compile.h
    抄送 init/version.o
    抄送 init/DO_mounts.o
    抄送 init/do_mounts_rd.o
    抄送 init/do_mounts_initrd.o
    LD init/mounts.o
    抄送 init/initramfs.o
    抄送 初始化/校准
    LD init/built-in.o
    HOSTCC usr/gen_init_cpio
    通用 /usr/initramfs_data.cpio
    如所示 /usr/initramfs_data.o
    LD /usr/built-in.o
    抄送 arch/arm/kernel/elf.o
    如所示 arch/arm/kernel/entry-armv.o
    如所示 arch/arm/kernel/entry-common.o
    抄送 arch/arm/kernel/irq.o
    抄送 arch/arm/kernel/opcodes.o
    抄送 arch/arm/kernel/process.o
    抄送 arch/arm/kernel/ptrace.o
    抄送 arch/arm/kernel/return_address.o
    抄送 arch/arm/kernel/setup.o
    抄送 arch/arm/kernel/signal.o
    抄送 arch/arm/kernel/sys_arm.o
    抄送 arch/arm/kernel/stacktrace.o
    抄送 arch/arm/kernel/time.o
    抄送 arch/arm/kernel/traps.o
    抄送 arch/arm/kernel/LEDs.o
    抄送 arch/arm/kernel/armksyms.o
    抄送 arch/arm/kernel/module.o
    如所示 arch/arm/kernel/sleep.o
    抄送 arch/arm/kernel/suspend.o
    抄送 arch/arm/kernel/io.o
    LD arch/arm/kernel/built-in.o
    如所示 arch/arm/kernel/head.o
    抄送 arch/arm/kernel/init_task.o
    LDS arch/arm/kernel/vmlinux.lds
    抄送 arch/arm/mm/dma-mapping
    抄送 arch/arm/mm/extable.o
    抄送 ARM/ARM/mm/FAULT.o
    抄送 arch/arm/mm/init.o
    抄送 arch/arm/mm/iomap.o
    抄送 arch/arm/mm/fault-armv.o
    抄送 拱形/臂形/毫米/齐平
    抄送 arch/arm/mm/idmap.o
    抄送 arch/arm/mm/ioremap.o
    抄送 arch/arm/mm/mmap.o
    抄送 ARM/ARM/mm/PgD.o
    抄送 arch/arm/mm/MM4.o
    抄送 arch/arm/mm/vmregion.o
    抄送 arch/arm/mm/proc-syms.o
    抄送 ARM/ARM/mm/alignment.o
    arch/arm/mm/alignment.c:在函数'do_alignment'中:
    arch/arm/mm/alignment.c:748:21:警告:"offset.un"可能在此函数中未初始化
    如所示 arch/arm/abort-ev5tj.o
    如所示 arch/arm/mm/pabort-legacy
    抄送 arch/arm/mm/Copypage-v4wb.o
    如所示 arch/arm/mm/tlb-v4wbi.o
    如所示 arch/arm/mm/proc-arm926.o
    LD arch/arm/mm/built-in.o
    LD arch/arm/common/built-in.o
    抄送 arch/arm/mach-Davinci/time.o
    抄送 arch/arm/mach-davinci/clock.o
    抄送 arch/arm/mach-Davinc/ serial.o
    抄送 arch/arm/mach-davinci/psc.o
    抄送 arch/arm/mach-Davinc/dma.o
    抄送 arch/arm/mach-Davinc/usb.o
    抄送 arch/arm/mach-davinci/common.o
    抄送 arch/arm/mach-Davinci/SRAM.o
    抄送 arch/arm/mach-davinci/mux.o
    抄送 arch/arm/mach-davinci/da850/o
    抄送 arch/arm/mach-davinci/devices/da8xx.o
    抄送 arch/arm/mach-Davinc/CP_INTC.o
    抄送 arch/arm/mach-davinci/board-da850-evm.o
    抄送 arch/arm/mach-davinci/board-da850-sdi.o
    抄送 arch/arm/mach-davinci/board-omapl138-lcdk.o
    抄送 arch/arm/mach-davinci/cpufreq.o
    抄送 arch/arm/mach-davinci/cpuidle.o
    抄送 arch/arm/mach-Davinci/pm.o
    如所示 arch/arm/mach-davinci/sleep.o
    LD arch/arm/mach-davinci/built-in.o
    抄送 kernel/fork.o
    抄送 kernel/exec_domain.o
    抄送 kernel/panel.o
    抄送 kernel/printk.o
    抄送 kernel/CPU。o
    抄送 kernel/exit.o
    抄送 kernel/itimer.o
    TIMEC 内核/timeconst.h
    不能使用'define(@array)'(也许您应该省略 defined()?) 请访问 kernel/timeconst.pl 的第373行。
    /home/BOB/ti/mcsdk_1_01_00_02/board-support/linux-3.3-psp03.22.00.06.sdk/kernel/Makefile:130:目标'kernel/timeconst.h'的配方失败
    maked[1]:***[kernel/timeconst.h]错误255
    Makefile:945:目标'kernel'的配方失败
    make:***[kernel]错误2.

    我在 kernel/timeconst.h 中查看过、但它是空的...

    感谢你的帮助、