{"id":22049712,"url":"https://github.com/coffee2codenl/sk98lin","last_synced_at":"2026-04-19T02:03:24.586Z","repository":{"id":80137593,"uuid":"57400332","full_name":"Coffee2CodeNL/sk98lin","owner":"Coffee2CodeNL","description":"sk98lin for Linux 4.x kernels","archived":false,"fork":false,"pushed_at":"2016-04-29T17:06:32.000Z","size":899,"stargazers_count":0,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-23T15:14:15.241Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Coffee2CodeNL.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-04-29T17:03:39.000Z","updated_at":"2018-08-06T13:57:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"859a24c4-b26b-4d49-9847-55934339d5ad","html_url":"https://github.com/Coffee2CodeNL/sk98lin","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Coffee2CodeNL/sk98lin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Coffee2CodeNL%2Fsk98lin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Coffee2CodeNL%2Fsk98lin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Coffee2CodeNL%2Fsk98lin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Coffee2CodeNL%2Fsk98lin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Coffee2CodeNL","download_url":"https://codeload.github.com/Coffee2CodeNL/sk98lin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Coffee2CodeNL%2Fsk98lin/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263832101,"owners_count":23517344,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-30T14:16:11.063Z","updated_at":"2026-04-19T02:03:24.539Z","avatar_url":"https://github.com/Coffee2CodeNL.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"(C)Copyright 1999-2012 Marvell(R).\nAll rights reserved.\n================================================================================\n\nsk98lin.txt created 22-Aug-2012\n\nReadme File for sk98lin v10.93.3.3\nMarvell Yukon/SysKonnect SK-98xx Gigabit Ethernet Adapter driver for Linux\nInstallation Instructions for sk98lin Driver\n\nThis file contains\n 1  Overview\n 2  Required Files and Tools\n 3  Prerequisites\n 4  Preparing the Driver Installation Package\n 5  Driver Installation\n    5.1  Installation Mode\n    5.2  Patch Generation Mode\n    5.3  Generate Makefile Mode\n 6  Patch Generation and Recompilation of the Kernel\n    6.1  Downloading and Unpacking the Linux Kernel\n    6.2  Generating the Driver Patch\n    6.3  Applying the Driver Patch\n    6.4  Configuring the Linux Kernel\n    6.5  Compiling and Installing the Linux Kernel\n 7  Generate Makefile Mode\n 8  Manual Module Loading\n 9  Unloading the Module\n10  Driver Parameters\n11  Ethtool Commands\n12  Troubleshooting\n================================================================================\n\n\n1  Overview\n===========\n\nThis document describes the installation of the sk98lin driver \non your Linux system. It describes how the installation script works\nand how it can be used to either install the sk98lin driver or to \ncreate a Linux kernel patch. The installation script can be used on\nLinux kernel versions 2.6 and higher.\n\nApplying the Linux kernel patch requires an installed Linux kernel \nwhich can be compiled and which is used along with the applied \nsk98lin driver. Therefore, unpacking, patching, configuring,\nand compiling a Linux kernel is also explained in this document.\n\nThis document does not describe the sk98lin driver and its \nparameters. For more information refer to 'sk98lin.txt' or \nthe sk98lin.4 man page.\n***\n\n\n2  Required Files and Tools\n===========================\n\nTo install the sk98lin driver the following files\nand tools on your Linux system are required:\n\n- Linux kernel source available in directory /usr/src/linux\n\n- Compiler tools (e.g. gcc)\n***\n\n\n3  Prerequisites\n================\n\nThe prerequisites for compilation, loading, and patch creation of the\nsk98lin driver are:\n\n- Any device using the sk98lin kernel module needs to be closed.\n\n- The old sk98lin kernel module needs to be unloaded.\n  Per default the installation script will do this automatically\n  (if \"installation\" mode is selected). \n\n- Your system has to be equipped with a supported network controller. \n  Without a network controller the full driver functionality cannot be checked.\n\n- The kernel source used for compilation and the running kernel\n  have to be consistent (same version and same configuration).\n***\n\n\n4  Preparing the Driver Installation Package\n============================================\n\nBefore the sk98lin driver installation script can be invoked, the \ninstallation package needs to be unpacked:\n\n1.  Login as 'root'.\n\n2.  To unpack the driver installation package, execute the command\n\n    # tar xfvj install_A.B.C.D.tar.bz2\n    or\n    # bunzip2 -c install_A.B.C.D.tar.bz2 | tar xfv -\n***\n\n5  Driver Installation\n======================\n\n1. After the driver installation package is unpacked, execute the following\n   commands to start the sk98lin driver build process:\n\n   # cd DriverInstall\n   # ./install.sh\n\n2. Select the driver installation mode (see following sections).\n\nNOTE: In case you have installed another driver module than the original\n      Marvell driver you will be asked how to further proceed. You can\n      ignore the fact, you can rename the other driver, or you can erase\n      the driver. We recommend to erase the driver to avoid unwanted\n      side effects and interdependencies.\n\n3. Wait for the driver build process to finish.\n   Depending on the installation mode you selected, the driver is either \n   compiled and installed, or a kernel patch is generated.\n\nNOTE:\nDepending on your Linux distribution, the name of your device may have\nchanged after successful installation. In order to restore your old \ndevice, start the appropriate network configuration utility and rename \nthe device.\n***\n\n5.1  Installation Mode\n----------------------\n\nWhen selecting the installation mode, the driver sources shipped\nwith the install package are compiled and the resulting driver \nmodule object file is installed to a suitable location (usually somewhere\nbelow directory /lib/modules/...).\n\nNo source files of the driver are installed into a kernel directory.\nOnly the driver module object file and the man page of the driver are \ninstalled onto your system permanently. \n            \nInstallation mode means that the build process runs automatically \nwithout any user interaction. In case of installation problems, \nthe driver installation script autonomously tries to solve the problem \n(if possible). \n\nAfter the compilation has finished, the initial system state and \nconfiguration is recovered and all (possibly) backed-up system \nfiles are restored from the initial configuration.\n***\n\n5.2  Patch Generation Mode\n--------------------------\n\nWhen selecting the patch generation mode, a driver patch is created \nwhich can be applied to your Linux kernel (instead of compiling and \ninstalling the driver on your system).\n\nUsually, a patch is applied when a recompilation of the Linux\nkernel is intended and the latest driver sources need to be\ninstalled permanently in the appropriate driver directory of \nthe Linux kernel.\n\nNOTE: You still have to compile your patched Linux kernel in\n      order to effectively use the latest driver sources shipped \n      with this installation package! \n***\n\n5.3  Generate Makefile Mode\n---------------------------\n\nWhen selecting the generate makefile mode, all of the driver sources including \na makefile will be copied into a new \"src\" directory.\n\nUsually, the generate makefile mode is used by experienced users to compile \nthe driver sources for development purposes without compiling the whole \nlinux kernel.\n\n***\n\n6  Patch Generation and Recompilation of the Kernel\n===================================================\n\nIf a new patch has been created using the sk98lin driver installation \nscript, \n- it needs to be applied to the Linux kernel sources \nand \n- the Linux kernel has to be recompiled in order to use the \n  sk98lin driver.\n***\n\n6.1  Downloading and Unpacking the Linux Kernel\n-----------------------------------------------\n\nBefore the sk98lin driver installation script is used to generate\na driver patch, a Linux kernel needs to be installed. If you already have \ninstalled a Linux kernel in the directory /usr/src, you can skip this\nsection and continue with the section \"Applying the Driver Patch\".\n\nTo patch the Linux Kernel:\n\n1.  Login as 'root'.\n\n2.  Download the original Linux source code named linux-a.b.c.tar.bz2\n    from ftp.kernel.org into the directory /usr/src\n\n3.  Go to the directory /usr/src and remove all symbolic links to old \n    Linux sources executing the commands:\n\n    # cd /usr/src\n    # rm linux\n\n4.  Unpack the original Linux source code executing the command:\n\n    # tar xvjf linux-a.b.c.tar.bz2\n\n    After the sources have been installed, they can be found in a\n    directory named /usr/src/linux-a.b.c or /usr/src/linux.\n\n5.  If the symbolic link to the target kernel source directory \n    (/usr/src/linux) does not exist, create it manually with the \n    following commands:\n\n    # cd /usr/src\n    # ln -s linux-a.b.c linux\n***\n\n6.2  Generating the Driver Patch\n--------------------------------\n\nTo generate the driver patch:\n\n1. Start the sk98lin driver installation script.\n\n2. Select \"generate patch\".\n\n3. Follow the instructions of the installation script.\n***\n\n6.3  Applying the Driver Patch\n------------------------------\n\nTo apply the generated patch into the kernel, execute the following\ncommands:\n    \n# cd /usr/src/linux\n# cat /patch-location/sk98lin__vA.B.C.D_a.b.c_patch | patch -p1\n***\n\n6.4  Configuring the Linux Kernel\n---------------------------------\n\nTo configure the Linux Kernel:\n\n1.  Go to the directory /usr/src/linux:\n\n    # cd /usr/src/linux\n\n2.  Depending on your current environment mode (console or graphical),\n    you have to invoke different Kernel configuration commands:\n\n    In the console mode, execute the command: \n\n    # make menuconfig\n\n    In the graphical mode, execute the command:\n\n    # make xconfig\n    \n    or\n\n    # make gconfig\n\n    This builds a few programs and displays the kernel configuration menu. \n\n3.  Select the menu \"device drivers\".\n\n4.  Select the menu \"Network Device Support\".\n\n5.  Select \"Ethernet (1000 Mbit)\".\n\n6.  To compile the driver as a module, mark \n    \"Marvell Yukon Chipset/SysKonnect SK-98xx Support\" with (M).\n\n    To integrate the driver permanently into the kernel, mark \n    \"Marvell Yukon Chipset/SysKonnect SK-98xx Support\" with (*).\n\n7.  To enable Rx polling of the driver, mark\n    \"Use Rx polling (NAPI)\" with (*).\n\n8.  Select \"Exit\".\n\n9.  Select the menu \"Loadable module support\".\n\n10.  Select \"Enable loadable module support\".\n\n11.  Select \"Kernel module loader\".\n\n12. Configure other options, e.g., SCSI, file systems, etc.\n\n13. To quit the configuration, select \"Exit\".\n\n14. When the message \"Do you wish to save your new kernel configuration\"\n    is displayed, select \"Yes\".\n***\n\n6.5  Compiling and Installing the Linux Kernel\n----------------------------------------------\n\nTo compile and install the Linux kernel: \n\n1.  Build the Linux kernel binary. Build all modules and install them \n    below /lib/modules by executing the commands: \n\n    # make        \n    # make modules_install\n    # make install\n\n2.  Reboot your system with the new kernel.\n***\n7  Generate Makefile Mode\n=========================\n\nIf generate makefile mode has been selected using the sk98lin driver \ninstallation script, the sk98lin driver sources will be compiled using \nthe running kernel and the driver binary will be generated in the \"src\" \ndirectory.\nIn this case the Linux kernel will not be recompiled.\n\nTo use generate makefile mode:\n\n1. Start the sk98lin driver installation script.\n\n2. Select \"generate makefile\".\n\n3. Follow the instructions of the installation script.\n***\n\n8  Manual Module Loading\n========================\n\nAfter booting the Linux kernel and compiling the driver as a loadable \nkernel module (LKM), the driver needs to be loaded:\n\n1. Enter \"modprobe sk98lin\".\n\n2. Execute the command \"ifconfig ethX \u003cIP_Adr.\u003e\":\n\n  # ifconfig eth0 192.168.0.1\n  # ifconfig eth1 192.168.1.1\n   \nNOTE: For further information (e.g. the driver parameters) refer to \n      the sk98lin.txt file.\n***\n\n\n9  Unloading the Module\n=======================\n\nUnloading of the sk98lin driver is only possible if it has been \ncompiled as a loadable kernel module. Before the driver module can be \nunloaded, all interfaces of the driver module must to be stopped with \nthe following sequence of commands:\n\n1. Execute the command \"ifconfig YOUR_DEVICE down\":\n\n  # ifconfig eth0 down\n  # ifconfig eth1 down\n  # ifconfig ... down\n\n2. Execute the command \"rmmod sk98lin\".\n***\n\n\n10  Driver Parameters\n=====================\n\nWhen loading the driver as a kernel module, additional parameters\ncan be passed to the driver for configuration.\n\nThe parameters can be passed in two ways: \n\nState them on the modprobe command line.\nor\nSet them in the file /etc/modprobe.conf (old name: \n/etc/modules.conf), in order to force the kernel module loader\nto pass them to the driver at load-time.\n\nNOTE: For further information about the driver parameters and their\n      possible values refer to the sk98lin.txt file.\n***\n\n\n11  Ethtool Commands\n====================\n\nThe sk98lin driver provides built-in ethtool support. The ethtool \ncan be used to display or modify interface specific configurations.\n\nNOTE: For further information about the ethtool commands and their\n      possible values refer to the sk98lin.txt file.\n***\n\n\n12  Troubleshooting\n===================\n\nIf any problems occur during the installation process, check the \nfollowing list of known problems. If you cannot find your problem \nin the list below, contact Marvell technical support\nfor help (MSGG-linux@marvell.com). When contacting our technical \nsupport, ensure that the following information is available:\n\n- The 'install.log' file created by the install script 'install.sh'\n- System Manufacturer and HW Informations (CPU, Memory... )\n- PCI-Boards in your system\n- Distribution\n- Kernel version\n- Driver version\n\nProblem:  Programs such as 'ifconfig' or 'route' cannot be found or the \n          error message 'Operation not permitted' is displayed.\nReason:   You are not logged in as user 'root'.\nSolution: Logout and login as 'root' or change to 'root' via 'su'.\n\n\nProblem:  The driver can be started, but if an ip address is assigned\n          to a network controller no link up indication is displayed although\n          it is connected to the network. It is also not possible to receive\n          or transmit any packets, i.e., 'ping' does not work.\nReason:   The network controller does not receive any interrupts from the Linux \n          system. This can happen when using the APIC (Advanced \n          Programmable Interrupt Controller) of an SMP (Symmetric Multi-Processor)\n          compiled kernel in a UP (Uni-Processor) environment. \nSolution: Use the Linux kernel parameters 'noapic' or 'nolapic' when\n          booting the kernel. To do this, add these kernel parameters\n          to the boot manager kernel selection menu (either\n          /boot/grub/menu.lst for GRUB or /etc/lilo.conf for LILO).\n          When you build a kernel, deselect the option CONFIG_X86_LOCAL_APIC.\n\n\nProblem:  The driver can be started, the network controller is connected to the \n          network and a link up indication is displayed, but you cannot \n          receive or transmit any packets, e.g., 'ping' does not work.\nReason:   There is an incorrect route in your routing table or the\n          remote host is unreachable.\nSolution: Check the routing table with the command 'route' and read the \n          man pages dealing with routes (enter 'man route').\n          Check the connection to the remote host system.\n\t\t  \nProblem:  After running the \"install.sh\" script the error message \n          './functions: 44: Syntax error: \"(\" unexpected' is displayed.\nReason:   Your Linux sytem uses a Debian Almquist shell (dash) which is a Unix \n          shell and much smaller than bash but still aiming at POSIX-compliancy. \n\t    It requires less disk space but is also less feature-rich.\nSolution: Use the following command: 'sudo bash ./install.sh'.\n\n***\n\n\n***End of Readme File***\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoffee2codenl%2Fsk98lin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoffee2codenl%2Fsk98lin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoffee2codenl%2Fsk98lin/lists"}