Comment personnaliser U-Boot avec une carte personnalisée pour OSD335X (Remarque)

Histoire jusqu'à la dernière fois

Jusqu'à ce que OSD335X exécute U-boot sur une carte personnalisée (Remarque) https://qiita.com/nonNoise/items/ef6702fd666421bd5688

Cette histoire

Maintenant que je peux voir comment fonctionne U-Boot, parlons-en.

Commandes importantes mentionnées dans l'exposé précédent

Appliquer un correctif à U-Boot

wget -c https://rcn-ee.com/repos/git/u-boot-patches/v2018.01/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch wget -c https://rcn-ee.com/repos/git/u-boot-patches/v2018.01/0002-U-Boot-BeagleBone-Cape-Manager.patch wget -c https://raw.githubusercontent.com/RobertCNelson/Bootloader-Builder/master/patches/v2018.03-rc1/0002-NFM-Production-eeprom-assume-device-is-BeagleBone-Bl.patch

patch -p1 < 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch patch -p1 < 0002-U-Boot-BeagleBone-Cape-Manager.patch patch -p1 < 0002-NFM-Production-eeprom-assume-device-is-BeagleBone-Bl.patch

Patch U-Boot

J'ai recherché des correctifs U-Boot. Je souhaite personnaliser U-Boot pour la carte d'origine. Tout d'abord, j'ai regardé ce que Pach faisait en premier lieu. Je cherchais la source, pensant qu'il s'agissait d'un contenu compilé, mais je ne le trouve pas. Je l'ai patché avant de compiler ... peut-être ... image.png

Le fichier de correctif était généralement un fichier contenant des informations git diff. Je vois, il y avait une commande de patch, donc si vous pensez qu'il existe un mécanisme, est-ce un tel mécanisme? Dans ce cas, je me demande si je peux créer mon propre patch en saisissant la différence entre les patchs, en réécrivant la source de l'unité principale U-Boot et en utilisant la différence comme patch. Je vois, je ne savais pas.

À propos de chaque patch

Si vous regardez les informations de diff de git, il est pratique de savoir en un coup d'œil avec quel fichier vous avez joué

◎ 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch

image.png

◎ 0002-U-Boot-BeagleBone-Cape-Manager.patch

image.png

◎ 0002-NFM-Production-eeprom-assume-device-is-BeagleBone-Bl.patch

image.png

Attentes de patch

En regardant Diff, j'ai trouvé que le même fichier était traité par différents correctifs, donc j'ai pensé que si je faisais une erreur dans l'ordre, cela entrerait en conflit.

Pour le moment, un par un

◎ 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch

C'est le premier patch à appliquer. am335x_pocketbeagle_defconfig a été le plus modifié. Ceci est un bloc de U-Boot / configs, et il semble que la fonction soit définie sur y / n.

◎ 0002-U-Boot-BeagleBone-Cape-Manager.patch

Le prochain patch à appliquer. board / ti / am335x / board.c a le plus changé. J'ai l'impression de mettre un patch sur le tableau ici. En particulier, BeagleBone-Cape, une planche légèrement plus récente dans BeagleBone https://github.com/u-boot/u-boot/tree/master/board/ti/am335x

◎ 0002-NFM-Production-eeprom-assume-device-is-BeagleBone-Bl.patch

Le dernier patch que j'ai appliqué. board / ti / common / board_detect.c a le plus changé. Puisqu'il est courant, j'ai l'impression qu'il modifie l'interface spécifique à la carte (fonction d'extension externe). https://github.com/u-boot/u-boot/tree/master/board/ti/common

Alors, où devrais-je jouer après tout?

ne sait pas. Après tout, je pense que c'est un flux de regarder la source de base U-boot, puis de saisir les différences entre les trois types de correctifs et d'appliquer le correctif de correction que je veux faire. Puisqu'il s'agit d'un Diff, la partie corrigée (supprimée) est affichée comme un moins, donc si vous appliquez 3 types de patchs pour le moment, puis jouez avec la source et laissez le Diff, je pense qu'un patch U-Boot hautement reproductible sera complété. ..

Sentiment, je veux recréer le patch avec la dernière version U-boot, mais c'est probablement une technique avec une compréhension des différences et une compréhension des sources.

Recommended Posts

Comment personnaliser U-Boot avec une carte personnalisée pour OSD335X (Remarque)
Jusqu'à ce que OSD335X exécute U-boot sur une carte personnalisée (Remarque)
Remarques sur la façon d'utiliser Firefox avec du sélénium sous Windows
Un mémo sur la façon de surmonter le problème difficile de la capture d'effets avec l'IA
Une note sur la façon de préparer facilement un environnement de pratique Linux
Comment ajouter un package avec PyCharm
Un mémo contenant Python2.7 et Python3 dans CentOS
Comment créer un indicateur personnalisé Backtrader
Comment tester sur une page authentifiée par Django
Notes sur la façon d'exécuter Cython sur OSX
Comment dessiner une ligne verticale sur une carte de chaleur dessinée avec Python Seaborn
Comment lire un fichier CSV avec Python 2/3
Comment envoyer un message à LINE avec curl
Comment dessiner un graphique à 2 axes avec pyplot
Stratégie sur la façon de monétiser avec Python Java
Comment développer une application de panier avec Django
Comment créer un dictionnaire avec une structure hiérarchique.
Comment installer OpenGM sur OSX avec macports
Comment vivre une vie décente avec Windows 2017
Procédure de création d'application multi-plateforme avec kivy
Comment publier un blog sur Amazon S3 avec le moteur de blog statique `` Pélican '' pour Pythonista
[Tentative] Comment convertir une chaîne de caractères en Shift_jis avec kivy-ios Memo kivy v1.8.0
Comment définir un dossier partagé avec le système d'exploitation hôte dans CentOS7 sur Virtual BOX
Mémo connecté à HiveServer2 d'EMR avec python
Remarques sur l'utilisation d'AIST Spacon ABCI
[Python] Comment dessiner un graphique linéaire avec Matplotlib
Comment créer un sous-menu avec le plug-in [Blender]
Comment déployer une application Django dans le cloud Alibaba
Comment convertir un objet de classe en dictionnaire avec SQLAlchemy
Comment installer Linux sur un PC UEFI 32 bits
Comment faire un jeu de tir avec toio (partie 1)
[Go] Comment créer une erreur personnalisée pour Sentry
Comment installer Caffe sur OS X avec macports
Un mémorandum sur l'utilisation de keras.preprocessing.image de Keras
Comment créer un environnement Django (python) sur Docker
[Python] Un mémo pour écrire du CSV verticalement avec Pandas
Autoencoder dans Chainer (Remarques sur l'utilisation de + trainer)
[Python] Comment créer un histogramme bidimensionnel avec Matplotlib
Comment exécuter Django sur IIS sur un serveur Windows
Comment créer un environnement Python sur Amazon Linux 2
[Python] Comment dessiner un diagramme de dispersion avec Matplotlib
Comment se connecter à Cloud SQL PostgreSQL sur Google Cloud Platform à partir d'un environnement local avec Java
[Démarrage du shell] J'ai essayé d'afficher le shell sur le téléviseur avec un G-cluster à carte Linux bon marché
Comment utiliser GitHub sur un serveur multi-personnes sans mot de passe
Comment déployer une application Web créée avec Flask sur Heroku
Comment créer un BOT Cisco Webex Teams à l'aide de Flask
Comment utiliser Fujifilm X-T3 comme webcam sur Ubuntu 20.04
Comment mettre un lien hypertexte vers "file: // hogehoge" avec sphinx-> pdf
Comment installer NPI + envoyer un message à la ligne avec python
Comment installer Python2.7 python3.5 avec pyenv (sur RHEL5 CentOS5) (novembre 2016)
Mémo pour obtenir la valeur côté html-javascript avec jupyter
Comment exécuter un modèle de transformateur entraîné localement sur CloudTPU
Comment créer un nouvel environnement virtuel Python sur Ubuntu
Comment sortir un document au format pdf avec Sphinx
Comment créer un jeu d'action multijoueur en ligne avec Slack
[Ev3dev] Comment afficher une image bmp sur un écran LCD avec python
Comment créer un maillage de flux autour d'un cylindre avec SnappyHexMesh
Comment imprimer des caractères sous forme de tableau avec la fonction d'impression de Python
Comment monter un répertoire Windows 10 sur Ubuntu-Server 20.04 sur VMware Workstation 15.