Support MA5671A SFP GPON

I fixed my ALCL stick, yay!

Since I'm working at an ISP, we have tons of GPON ONT in the box that we no longer needed, I decided to pull out a laser module then replace the one in my stick, it's working now but it's detecting a wrong RX power level, I guess the calibration is a little off, lol, anyone have any idea on how to recalibrate this thing's laser? it seems like have something to do with /etc/config/goi_config

Hi guys,

How did you manage to permanently edit the file?
With my G-010S-A each time I reboot after modifying the /etc/init.d/omcid.sh, it reverts back to the original file. It's driving me crazy...

Thanks for your help

If you are talking about Serial configuration have a look here

1 Like

Thanks @seb1 for the quick reply.

I am not looking to configure the S/N. In this chip one can do it with ritool.
I am trying to use the lantiq omci binary instead of the ALU/NOKIA one. My firmware comes with the binary pre-installed and I just need to modify the init.d script but the modifications don't survive a reboot.

But I guess that my problem would be the same if I wanted to edit the sys.sh script..

ok, sorry I thought was the SN edit but anyway that script solved for me the overwrite of the omcid data at reboot.

Thank you

G010SA is different from our modules.

My guess is the G-010S-A's folder containing etc must be mounted as read-only. It is still possible to find a way around it.
That's what I would do. There are probably automated scripts for this task.

  1. Examine the G-010S-A firmware (6291456 bytes) with binwalk.
  2. Use dd to extract the squash filesystem from the firmware.
  3. Unpack the squash filesystem using the unsquashfs.
  4. Make changes to omcid.sh
  5. Re-pack the filesystem using mksquashfs sqdir/ sqsh.bin -all-root -b 262144 -comp xz
  6. Assemble the firmware parts cat(uImage+LZMA+Squashfs)
  7. If the modified firmware is less than 6291456 bytes, append some zeros (dd if=/dev/zero, cat)

thanks for the advice, I will give it a try.
Do you know by chance if there is a checksum somewhere that will block the partiton mounting?

Apart from the standard firmware checksums, I do not recollect any additional measures that will prevent mounting the partition.
Follow the recommendations for G010SA and remove the GPIO100 from the preboot variable so that you can easily restore the flash memory if an error situation occurs.

Thanks a lot! It worked perfect.
Though the script crashes with my modifications but that it is a different problem.

On a side note, I removed GPIO100 from mtd1 but what does it do?

Apparently, on an SFP based on the Lantiq chip, gpio100 prevents U-boot interruption with a Ctrl-C key sequence.

1 Like

Guys, I bought and successfully unlocked the bootloader of a MA5671A.
Dumb question: what is the root password for the ssh login? :blush:
I could edit the shadowfile and reflash it but I think that there is a simpler way :slight_smile:

found it:
root/admin123

Hello everyone

Do somebody knows how to change the 'image_version' that OMCI sends to the OLT (I think it is the parameter number 7 in the mibs file).

Even if I set it with fw_setenv, at each reboot this variable is re-written with the stock value. I tried for hours to find which script is doing this or to find where this stock variable is saved but I keep failing.
I think it is this variable that is causing my handshake with the OLT to fail. With the HL23446, OMCI sends the variable value that I set on uboot_env. And it works great. I just wanted to find a way of testing this with the stock MA5671a firmware.

thanks for you insight

How did you create this log file? :slight_smile:

You can set debug level using onu onudls. Default level is 2 (onu onudlg).

1 Like

Thank you very much!
I think you can just add this command to the onu.sh to run it before the init is done, right?

1 Like

I edited /etc/init.d/omci.sh :

 ${OMCID_BIN} -d1 -p$mib_file  -o$omcc_version -i$omci_iop_mask ${lct} -l /tmp/omci.log > /dev/console 2> /dev/console &
1 Like

Hello!
first of all thanks for all the info and procedures posted here, they are all extremely useful!
I'm having issues trying to flash my Huawei MA5671A that I'd like to unlock to experiment with my ISP.
I followed all the instructions, built a usb serial cable with an USB UART and SFP molex as described but it seems I'm not able to "transmit" anything, I can properly see the boot logs and if I short pin 4&5 of the flash, I can access the boot prompt where I'm supposed to hit "7" and after upload the "abort" image, but no matter what I do, it seems the SFP is not receiving my "7" followed by enter, even if I do I don't get any reaction, and I suppose I should see the "xmodem" message so that I can start the upload.
I double/triple checked all connections, even tried using an external power source instead of the usb power, but I was not able to get past this.
If I understand it correctly, the SFP pin allowing me to "transmit" should be the #7 (if I disconnect #2 i stop seeing the boot messages), but I noticed something "strange", maybe it's normal, but when I connect the pin #7 to the TX of my usb uart adapter, as soon as I insert the sfp into the molex, the "tx" led on the usb adapter turns on and stays on, while the "RX" led blinks a little when receiving messages from the SFP, is this normal?
I tested the usb-uart module by shorthing together "rx" and "tx" and making sure I could see back every key I typed (doubled if I enabled local echo of course), so the usb module seems to work as expected.
What am I doing wrong? do you have any suggestion?

thanks a lot!

Hi Moebius. I had few problems when I try to unlock my module too. I would recommend using external power to power up module. Don't connect 3.3 volts from external power supply to usb ttl, only ground and tx and rx pins. Make sure to connect first usb ttl, and then boot up external power supply to boot up the module.
Also make sure you are using pin 2 and 7 for external and tx, and note that 3.3 volt from power supply must be connected to pins 15 and 16. Pin 10 Gnd should be connected to both, power supply and usb ttl gnd.

I hope this could help.

thanks a lot! I was already using an external power supply, connected exactly as you described, so that was not my issue.
I finally solved it but still not sure how, I basically short-circuited for a few seconds rx and tx of my uart usb adapter WHILE the SFP was connected, finally the "tx" led on the uart usb adapter switched off and from that moment, I was able to transmit and proceed with the process! I still cannot explain why though.
After that, everything went very smoothly.
thanks for your suggestion, I'm now ready to play :slight_smile: