stm32mp1 distro는 이더넷 가젯이 기본으로 설정되어있다.
usb0로 잡히며, 192.168.7.1 로 설정되고, pc측으로 dhcp ip를 준다
이것은 systemd 의 서비스로 설정되어있고,
usb0 이 잡힐때, 스크립트를 실행하여 수행된다.
g_serial을 우리는 사용해야하는데, 위의 g_ether가 설정되면,
g_serial관련 커널설정을 하더라도, /dev 안에 ttyGS0가 생성되지 않는다.
g_ether를 사용하지않으면 ttyGS0가 생성되더라. (이유는.....???)
또한 g_ether 커널옵션을 다 끄더라도, disto의 recipe는 남아있다.
이것이 뭐가 문제냐면,
usb modem을 host로 붙이는데, g_ether가 없으므로, 이 모뎀이 usb0로 잡히게 된다.
usb0로 잡히므로 위의 systemd에 의해 ip를 192.168.7.1로 설정해버린다.
그리하여 usb0는 모뎀인데, ip설정은 g_ether대로 설정이 되버리는 상황 발생.
그래서 systemd의 서비스까지 없애줘야한다.
통으로 막으면 흔적이 없어지므로 스크립트만 막는다. 위치는.
Distribution-Package/openstlinux-5.10-dunfell-mp1-21-11-17/layers/meta-st/meta-st-openstlinux/recipes-bsp/tools/
usbotg-gadget-config.bb1. systemd끄고,
SYSTEMD_AUTO_ENABLE_${PN} = "disable"
2. 네트워크 설정 설치 막고.
#install -m 0644 ${WORKDIR}/53-usb-otg.network ${D}${systemd_unitdir}/network
3. 스크립트 설치 막고.
#install -m 0755 ${WORKDIR}/stm32_usbotg_eth_config.sh ${D}${sysconfdir}/init.d/
# Copyright (C) 2018, STMicroelectronics - All Rights Reserved
# Released under the MIT license (see COPYING.MIT for the terms)
DESCRIPTION = "The goal is to enable USB gadget configuration"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
PV = "1.0"
SRC_URI = " file://usbotg-config.service \
file://stm32_usbotg_eth_config.sh \
file://53-usb-otg.network \
"
S = "${WORKDIR}/git"
inherit systemd update-rc.d
SYSTEMD_PACKAGES += "${PN}"
SYSTEMD_SERVICE_${PN} = "usbotg-config.service"
#SYSTEMD_AUTO_ENABLE_${PN} = "enable" c.h.jung
SYSTEMD_AUTO_ENABLE_${PN} = "disable"
do_install() {
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
install -d ${D}${systemd_unitdir}/system ${D}${base_sbindir} ${D}${systemd_unitdir}/network
install -m 0644 ${WORKDIR}/usbotg-config.service ${D}${systemd_unitdir}/system
install -m 0755 ${WORKDIR}/stm32_usbotg_eth_config.sh ${D}${base_sbindir}
#install -m 0644 ${WORKDIR}/53-usb-otg.network ${D}${systemd_unitdir}/network
fi
install -d ${D}${sysconfdir}/init.d
#install -m 0755 ${WORKDIR}/stm32_usbotg_eth_config.sh ${D}${sysconfdir}/init.d/
}
INITSCRIPT_NAME = "stm32_usbotg_eth_config.sh"
INITSCRIPT_PARAMS = "start 22 5 3 ."
FILES_${PN} += "${systemd_unitdir}/network"
그러면, 모뎀ip잘되고, g_ether막히고. 잘됨.