For the port of Mageia on a Banana Pro, I saw that the default kernel configuration boot and the kernel from Mageia.Org doesn't seem to boot. After a small comparison between our kernel configuration http://svnweb.mageia.org/packages/updates/7/kernel/current/SOURCES/defconfig-arm-desktop?view=markup and the default sunxi configuration which boots https://github.com/torvalds/linux/blob/master/arch/arm/configs/sunxi_defconfig I could see for main differences, what is defined in the sunxi_defconfig and not on Mageia's kernel : ``` CONFIG_ROOT_NFS=y If you want your system to mount its root file system via NFS, choose Y here. CONFIG_CPU_FREQ=y CPU Frequency scaling allows you to change the clock speed of CPUs on the fly. This is a nice method to save power, because the lower the CPU clock speed, the less power the CPU consumes. CONFIG_CPUFREQ_DT=y This adds a generic DT based cpufreq driver for frequency management. It supports both uniprocessor (UP) and symmetric multiprocessor (SMP) systems. CONFIG_IP_PNP=y This enables automatic configuration of IP addresses of devices and of the routing table during kernel boot, based on either information supplied on the kernel command line or by BOOTP or RARP protocols. You need to say Y only for diskless machines requiring network access to boot (in which case you want to say Y to "Root file system on NFS" as well), because all other machines configure the network in their startup scripts. CONFIG_IP_PNP_DHCP=y If you want your Linux box to mount its whole root file system (the one containing the directory /) from some other computer over the net via NFS and you want the IP address of your computer to be discovered automatically at boot time using the DHCP protocol (a special protocol designed for doing this job), say Y here. In case the boot ROM of your network card was designed for booting Linux and does DHCP itself, providing all necessary information on the kernel command line, you can say N here. CONFIG_IP_PNP_BOOTP=y If you want your Linux box to mount its whole root file system (the one containing the directory /) from some other computer over the net via NFS and you want the IP address of your computer to be discovered automatically at boot time using the BOOTP protocol (a special protocol designed for doing this job), say Y here. In case the boot ROM of your network card was designed for booting Linux and does BOOTP itself, providing all necessary information on the kernel command line, you can say N here. CONFIG_CAN=y Controller Area Network (CAN) is a slow (up to 1Mbit/s) serial communications protocol. Development of the CAN bus started in 1983 at Robert Bosch GmbH, and the protocol was officially released in 1986. The CAN bus was originally mainly for automotive, but is now widely used in marine (NMEA2000), industrial, and medical applications. More information on the CAN network protocol family PF_CAN is contained in <Documentation/networking/can.rst>. M CONFIG_CAN_SUN4I=y Say Y here if you want to use CAN controller found on Allwinner A10/A20 SoCs. To compile this driver as a module, choose M here: the module will be called sun4i_can. CONFIG_STMMAC_ETH=y This is the driver for the Ethernet IPs built around a Synopsys IP Core. CONFIG_SERIAL_8250_DW=y Selecting this option will enable handling of the extra features present in the Synopsys DesignWare APB UART. CONFIG_SERIAL_OF_PLATFORM=y This option is used for all 8250 compatible serial ports that are probed through devicetree, including Open Firmware based PowerPC systems and embedded systems on architectures using the flattened device tree format. M CONFIG_I2C_MV64XXX=y If you say yes to this option, support will be included for the built-in I2C interface on the Marvell 64xxx line of host bridges. This driver is also used for Allwinner SoCs I2C controllers. This driver can also be built as a module. If so, the module will be called i2c-mv64xxx. CONFIG_CPU_THERMAL=y This implements the generic cpu cooling mechanism through frequency reduction. An ACPI version of this already exists (drivers/acpi/processor_thermal.c). This will be useful for platforms using the generic thermal interface and not the ACPI interface. M CONFIG_SUNXI_WATCHDOG=y Say Y here to include support for the watchdog timer in Allwinner SoCs. To compile this driver as a module, choose M here: the module will be called sunxi_wdt. CONFIG_MFD_AC100=y If you say Y here you get support for the X-Powers AC100 audio codec IC. This driver include only the core APIs. You have to select individual components like codecs or RTC under the corresponding menus. CONFIG_REGULATOR_GPIO=y This driver provides support for regulators that can be controlled via gpios. It is capable of supporting current and voltage regulators and the platform has to provide a mapping of GPIO-states to target volts/amps. CONFIG_RC_CORE=y Enable support for Remote Controllers on Linux. This is needed in order to support several video capture adapters, standalone IR receivers/transmitters, and RF receivers. CONFIG_RC_DEVICES=y (none) CONFIG_DRM_DUMB_VGA_DAC=y Support for non-programmable RGB to VGA DAC bridges, such as ADI ADV7123, TI THS8134 and THS8135 or passive resistor ladder DACs. CONFIG_USB_EHCI_HCD_PLATFORM=y Adds an EHCI host driver for a generic platform device, which provides a memory space and an irq. CONFIG_USB_OHCI_HCD_PLATFORM=y Adds an OHCI host driver for a generic platform device, which provides a memory space and an irq. CONFIG_USB_GADGET=y USB is a master/slave protocol, organized with one master host (such as a PC) controlling up to 127 peripheral devices. The USB hardware is asymmetric, which makes it easier to set up: you can't connect a "to-the-host" connector to a peripheral. CONFIG_LEDS_GPIO=y This option enables support for the LEDs connected to GPIO outputs. To be useful the particular board must have LEDs and they must be connected to the GPIO lines. The LEDs must be defined as platform devices and/or OpenFirmware platform devices. The code to use these bindings can be selected below. M CONFIG_RTC_DRV_AC100=y If you say yes here you get support for the real-time clock found in X-Powers AC100 family peripheral ICs. This driver can also be built as a module. If so, the module will be called rtc-ac100. CONFIG_MFD_AXP20X_I2C=y If you say Y here you get support for the X-Powers AXP series power management ICs (PMICs) controlled with I2C. This driver include only the core APIs. You have to select individual components like regulators or the PEK (Power Enable Key) under the corresponding menus. CONFIG_MFD_AXP20X_RSB=y If you say Y here you get support for the X-Powers AXP series power management ICs (PMICs) controlled with RSB. This driver include only the core APIs. You have to select individual components like regulators or the PEK (Power Enable Key) under the corresponding menus. CONFIG_AXP20X_POWER=y This driver provides support for the power supply features of AXP20x PMIC. M CONFIG_INPUT_AXP20X_PEK=y Say Y here if you want to enable power key reporting via the AXP20X PMIC. To compile this driver as a module, choose M here. The module will be called axp20x-pek. M CONFIG_CHARGER_AXP20X=y Say Y here to enable support for X-Powers AXP20X and AXP22X PMICs' AC power supply. This driver can also be built as a module. If so, the module will be called axp20x_ac_power. M CONFIG_BATTERY_AXP20X=y Say Y here to enable support for X-Powers AXP20X PMICs' battery power supply. This driver can also be built as a module. If so, the module will be called axp20x_battery. CONFIG_REGULATOR_AXP20X=y This driver provides support for the voltage regulators on the AXP20X PMIC. M CONFIG_AXP20X_ADC=y Say yes here to have support for X-Powers power management IC (PMIC) AXP20X and AXP22X ADC devices. To compile this driver as a module, choose M here: the module will be called axp20x_adc. ``` So I tried and turns CONFIG_SERIAL_OF_PLATFORM to n instead of y, the default sunxi kernel boots, and turns CONFIG_SERIAL_8250_DW to n instead of y, then, the boot seems to freeze at "starting kernel" (uboot). I tried also setting it to m to be integrated as a module, but same bad result. Is it possible to integrate CONFIG_SERIAL_8250_DW into Mageia's arm kernel ? And, in general, I thing it could be a good point if integrate also into the kernel CONFIG_SERIAL_OF_PLATFORM . Jybz
https://linux-sunxi.org/LeMaker_Banana_Pro http://www.banana-pi.org/ Assigning to kernel team.
Assignee: bugsquad => kernelCC: (none) => lewyssmithSummary: Enabling serial option => Mageia kernel does not boot on a Banan Pro ARM; enable serial option?
Well, I think I have a workaround, instead of integrate it into the kernel, I will load it the initrd. But it has to be at least compiled as a module, at least. Is it possible to build only one driver without recompiling all the modules ?
Sorry, I missed this report. I will update the configs for next build
CC: (none) => tmb
Oh ! Thank you ! I set initrd to embedded this driver (that I'm currently trying to build automatically in the iso creation). And I met that CONFIG_MMC_SUNXI is built as a module and need also to be either built in the kernel, or in the initrd. TMB, do you have any suggestion ? Built in or as a module and embedded in initrd ?
having it builtin makes it possible to boot from mmc without initrd
Ok good, so please: can you add: CONFIG_SERIAL_8250_DW=y and change from module to kernel: CONFIG_MMC_SUNXI=y There are other drivers that the default configuration for banana Pro have and isn't even as module for Mageia : CONFIG_ROOT_NFS=y CONFIG_CPU_FREQ=y CONFIG_CPUFREQ_DT=y CONFIG_IP_PNP=y CONFIG_IP_PNP_DHCP=y CONFIG_IP_PNP_BOOTP=y CONFIG_CAN=y CONFIG_CAN_SUN4I=y CONFIG_STMMAC_ETH=y CONFIG_INPUT_AXP20X_PEK=y CONFIG_SERIAL_8250_DW=y CONFIG_SERIAL_OF_PLATFORM=y CONFIG_I2C_MV64XXX=y CONFIG_CHARGER_AXP20X=y CONFIG_BATTERY_AXP20X=y CONFIG_AXP20X_POWER=y CONFIG_CPU_THERMAL=y CONFIG_SUNXI_WATCHDOG=y CONFIG_MFD_AC100=y CONFIG_MFD_AXP20X_I2C=y CONFIG_MFD_AXP20X_RSB=y CONFIG_REGULATOR_AXP20X=y CONFIG_REGULATOR_GPIO=y CONFIG_RC_CORE=y CONFIG_RC_DEVICES=y CONFIG_DRM_DUMB_VGA_DAC=y CONFIG_USB_EHCI_HCD_PLATFORM=y CONFIG_USB_OHCI_HCD_PLATFORM=y CONFIG_USB_GADGET=y CONFIG_LEDS_GPIO=y CONFIG_RTC_DRV_AC100=y CONFIG_AXP20X_ADC=y It boots without, but I don't know if they are important. Does it worth to build them as module ?
I will review them
Will it only be on mga8/cauldron or also on mga7 ? I see, you already did the modification on cauldron.
It will come to mga7 too, but I make all changes Cauldron first... The new thing for Mga7 is that kernels stays in sync with Cauldron
kernel-5.3.10-1 is now building for both Cauldron and Mga7
(In reply to Thomas Backlund from comment #3) > Sorry, I missed this report. Glad to see you on this one! Thanks.
CC: lewyssmith => (none)
Created attachment 11352 [details] Log uboot, boot, root login, rpm -qa --last, poweroff Hello! Find in attachment the last log. I build the image using the kernel in update_testing, it boots correctly (I guess), I could log and shutdown. Before closing that bug report, is there something I have to check ? Should I write to the QA list and ask if there is any process to check if it works well (or not) ? Thank you all for everything! What should I do with this Mageia image? Is someone willing to write a blog article? Jybz
First bad point, no ethernet connection. Prio this specification : http://www.lemaker.org/product-bananapro-specification.html Ethernet Port : 10/100/1000Mbps ethernet (Realtek RTL8211E/D) I didn't find any Realtek RTL8211E/D driver in Mageia repo yet.
(In reply to Jybz from comment #13) > First bad point, no ethernet connection. > > Prio this specification : > http://www.lemaker.org/product-bananapro-specification.html > Ethernet Port : 10/100/1000Mbps ethernet (Realtek RTL8211E/D) > > I didn't find any Realtek RTL8211E/D driver in Mageia repo yet. Can you provide output of lspcidrake -v and lsusb
Actually, that is a RGMII PHY that should be supported by current kernels, I will look if we still miss something
[root@bananaPro ~]# lsusb Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub [root@bananaPro ~]# lspcidrake -v hub : Linux 5.3.10-desktop-1.mga7 ehci_hcd|EHCI Host Controller [Hub|Unused|Full speed (or root) hub] (vendor:1d6b device:0002) hub : Linux 5.3.10-desktop-1.mga7 ohci_hcd|Generic Platform OHCI controller [Hub|Unused|Full speed (or root) hub] (vendor:1d6b device:0001) hub : Linux 5.3.10-desktop-1.mga7 ehci_hcd|EHCI Host Controller [Hub|Unused|Full speed (or root) hub] (vendor:1d6b device:0002) hub : Linux 5.3.10-desktop-1.mga7 ohci_hcd|Generic Platform OHCI controller [Hub|Unused|Full speed (or root) hub] (vendor:1d6b device:0001) [root@bananaPro ~]#
ok, we are missing vendor_stmicro and the stmmac driver to link up the phy
Oh do you mean : CONFIG_NET_VENDOR_STMICRO CONFIG_STMMAC_ETH CONFIG_STMMAC_PLATFORM CONFIG_DWMAC_GENERIC CONFIG_DWMAC_SUNXI <- this one ? (By the way, I saw few user trying usb-wifi dongles, with rtl, does this option be interresting ? CONFIG_RTL8XXXU_UNTESTED )
A kernel-5.3.10-2.mga7 is now building that should fix the missing network
Created attachment 11354 [details] log : boot, root, ifconfig -a, poweroff Hi tmb ! I boot and could see that the ethernet interface was there. Unfortunately, I can not check if it correctly works (with a plugged cable) for few day, hopefully this weekend. I saw your log message ( 1459324 - ARM: sunxi: Fix CPU powerdown on A83T ) is it related to the "bad message" at the end after power down ? If yes, it didn't affect the behaviour (also in attachment). cheers
Confirmation ! The ethernet connexion works well.
Status: NEW => RESOLVEDResolution: (none) => FIXED