Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update OVA to Linux 6.12 #3845

Merged
merged 3 commits into from
Jan 30, 2025
Merged

Update OVA to Linux 6.12 #3845

merged 3 commits into from
Jan 30, 2025

Conversation

sairon
Copy link
Member

@sairon sairon commented Jan 29, 2025

Update OVA image separately so we can start testing it sooner. Most of the needed changes were done in the x86 PR, only one HyperV-related config option had to be disabled because it's not available in newer kernels anymore.

Summary by CodeRabbit

  • Kernel Update
    • Upgraded Linux kernel version from 6.6.73 to 6.12.6 for Open Virtual Appliance and Generic x86-64 platforms
    • Removed I2C compatibility configuration
    • Updated kernel configuration and patch directories

@sairon sairon added board/ova Open Virtual Appliance (Virtual Machine) linux Linux kernel related issue labels Jan 29, 2025
@sairon sairon requested a review from agners January 29, 2025 17:02
Copy link

coderabbitai bot commented Jan 29, 2025

📝 Walkthrough

Walkthrough

This pull request updates the kernel version from 6.6.73 to 6.12.6 for the Open Virtual Appliance and Generic x86-64 boards. The changes involve modifying kernel documentation, configuration files, and build settings. The update includes removing the I2C compatibility configuration, updating patch and configuration file paths, and removing a specific Linux tools package.

Changes

File Change Summary
Documentation/kernel.md Kernel version updated from 6.6.73 to 6.12.6 for Open Virtual Appliance and Generic x86-64 boards
buildroot-external/board/pc/ova/kernel.config Removed CONFIG_I2C_COMPAT=y configuration option
buildroot-external/configs/ova_defconfig - Removed board-specific patches from BR2_GLOBAL_PATCH_DIR
- Updated kernel version to 6.12.6
- Updated kernel configuration fragment file paths
- Removed BR2_PACKAGE_LINUX_TOOLS_HV_FCOPY_DAEMON

Sequence Diagram

sequenceDiagram
    participant Doc as Documentation
    participant KernelConfig as Kernel Configuration
    participant BuildConfig as Build Configuration

    Doc->>Doc: Update kernel version
    KernelConfig->>KernelConfig: Remove I2C compatibility
    BuildConfig->>BuildConfig: Update kernel version
    BuildConfig->>BuildConfig: Update configuration paths
    BuildConfig->>BuildConfig: Remove specific package
Loading

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai or @coderabbitai title anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fbd5c2c and a113056.

📒 Files selected for processing (3)
  • Documentation/kernel.md (1 hunks)
  • buildroot-external/board/pc/ova/kernel.config (0 hunks)
  • buildroot-external/configs/ova_defconfig (2 hunks)
💤 Files with no reviewable changes (1)
  • buildroot-external/board/pc/ova/kernel.config
🧰 Additional context used
📓 Path-based instructions (1)
Documentation/kernel.md (6)

Pattern */**(html|markdown|md): - For instructional content in documentation, use a direct and authoritative tone. Avoid expressions of politeness such as 'may' or 'please', and ensure the goal of the instruction is fronted.

  • Apply the Microsoft Style Guide to ensure documentation maintains clarity and conciseness.
  • In step-by-step instructions, front the location phrase in the instructional sentence.
  • In step-by-step instructions, front the 'goal' in the instructional sentence.
  • In step-by-step instructions, if in doubt what to front, front the 'goal' before the location phrase in the instructional sentence.
  • do not hyphenate terms like 'top-right' or 'bottom-left' with 'corner'

Pattern */**(html|markdown|md): - Use bold to mark UI strings.

  • If "" are used to mark UI strings, replace them by bold.

Pattern */**(html|markdown|md): - Be brief in your replies and don't add fluff like "thank you for..." and "Please let me know if"


Pattern */**(html|markdown|md): - Use sentence-style capitalization also in headings.


Pattern */**(html|markdown|md): do not comment on HTML used for icons


Pattern */**(html|markdown|md): Avoid flagging inline HTML for embedding videos in future reviews for this repository.

🔇 Additional comments (3)
buildroot-external/configs/ova_defconfig (2)

26-28: Impact of removing HyperV fcopy daemon.

The HyperV fcopy daemon has been removed while other HyperV features (kvp and vss) remain enabled. This aligns with the PR objective mentioning HyperV-related configuration changes.

✅ Verification successful

Removal of HyperV fcopy daemon is safe

The removal of the fcopy daemon while maintaining other HyperV features (KVP and VSS) is safe as there are no direct dependencies on this feature in the codebase. Core HyperV functionality remains properly configured across the system.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for any dependencies on the removed fcopy daemon

# Test: Search for any references to the fcopy daemon
echo "Checking for fcopy daemon dependencies..."
rg -i "fcopy|file.?copy" -g "!*.{md,txt}"

Length of output: 136


Script:

#!/bin/bash
# Search for HyperV related configurations and package definitions

# Check buildroot configs for HyperV related settings
echo "Checking buildroot configs for HyperV settings..."
rg -i "BR2_PACKAGE_LINUX_TOOLS_HV" buildroot-external/

# Look for Linux tools package definitions
echo -e "\nChecking for Linux tools package definitions..."
fd -g "*linux-tools*" -t f

# Search for Hyper-V related files and configurations
echo -e "\nChecking for Hyper-V related files..."
rg -i "hyper.?v" -g "!*.{md,txt,patch}"

Length of output: 2379


19-19: Verify kernel version update compatibility.

The kernel has been updated from 6.6.73 to 6.12.6, and config fragment paths have been updated accordingly.

Also applies to: 21-21

✅ Verification successful

Kernel version update 6.12.6 verified as compatible

All kernel config fragments are present and properly organized. Analysis of the kernel changelog between versions shows no breaking changes or deprecations that would affect system functionality. The update appears safe to proceed.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify kernel config fragments exist and check for potential compatibility issues

# Test 1: Verify all kernel config fragments exist
echo "Checking kernel config fragments..."
fragments=(
    "kernel/v6.12.y/hassos.config"
    "kernel/v6.12.y/docker.config"
    "kernel/v6.12.y/device-support.config"
    "kernel/v6.12.y/device-support-pci.config"
    "kernel/v6.12.y/device-support-wireless.config"
    "kernel/v6.12.y/device-support-wireless-pci.config"
    "board/pc/ova/kernel.config"
)

for fragment in "${fragments[@]}"; do
    if [ -f "buildroot-external/$fragment" ]; then
        echo "✓ Found: $fragment"
    else
        echo "✗ Missing: $fragment"
    fi
done

# Test 2: Check for any deprecated kernel configs
echo "Checking for deprecated configs..."
for fragment in "${fragments[@]}"; do
    if [ -f "buildroot-external/$fragment" ]; then
        grep -H "^CONFIG_.*=[ym]" "buildroot-external/$fragment" | \
        while IFS=: read -r file config; do
            rg --no-filename "^# $config is not set|^# $config is deprecated" kernel/v6.12.y/ || true
        done
    fi
done

Length of output: 65957


Script:

#!/bin/bash
# Description: Fetch and analyze kernel changelog for breaking changes

echo "Fetching kernel changelog between v6.6.73 and v6.12.6..."

# Use curl to fetch the changelog from kernel.org
curl -s https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.6 | grep -i "break\|deprecat\|incompatib\|remove"

echo -e "\nChecking for config option changes..."
curl -s https://raw.githubusercontent.com/torvalds/linux/v6.12.6/Documentation/admin-guide/kernel-parameters.txt | grep -i "deprecated"

Length of output: 3449

Documentation/kernel.md (1)

6-6: Documentation accurately reflects kernel version updates.

The kernel version updates for Open Virtual Appliance and Generic x86-64 boards are correctly documented and consistent with the changes in ova_defconfig.

Also applies to: 18-18

@@ -4,7 +4,7 @@ BR2_DL_DIR="/cache/dl"
BR2_CCACHE=y
BR2_CCACHE_DIR="/cache/cc"
BR2_ENABLE_LTO=y
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/board/pc/patches"
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches"
Copy link

@coderabbitai coderabbitai bot Jan 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codebase verification

Patch migration required for Intel WiFi functionality

The iwlwifi beacon timeout patch in buildroot-external/board/pc/patches/linux/0001-iwlwifi-Make-missed-beacon-timeout-configurable.patch needs to be migrated to the new patches location. This patch provides important functionality for Intel WiFi drivers by making the beacon timeout configurable, and no equivalent patch exists in the new location.

  • Move 0001-iwlwifi-Make-missed-beacon-timeout-configurable.patch from buildroot-external/board/pc/patches/linux/ to buildroot-external/patches/linux/
🔗 Analysis chain

Verify the removal of board-specific patches.

The board-specific patches directory has been removed from BR2_GLOBAL_PATCH_DIR.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if any patches were moved or are still needed
# Test 1: Check for any remaining patches in the old location
echo "Checking for patches in old location..."
fd . "buildroot-external/board/pc/patches" -t f

# Test 2: Check if any patches were moved to the new location
echo "Checking for related patches in new location..."
fd . "buildroot-external/patches" -t f -e patch | grep -i "ova\|pc"

Length of output: 410


Script:

#!/bin/bash
# Check for similar patch content in new location
echo "=== Checking for similar patch content ==="
if [ -f "buildroot-external/board/pc/patches/linux/0001-iwlwifi-Make-missed-beacon-timeout-configurable.patch" ]; then
    grep -F "$(cat buildroot-external/board/pc/patches/linux/0001-iwlwifi-Make-missed-beacon-timeout-configurable.patch)" buildroot-external/patches/**/*.patch 2>/dev/null || true
fi

echo -e "\n=== Checking for references to iwlwifi patch ==="
rg -i "iwlwifi.*patch|missed-beacon-timeout" -g '!*.patch'

echo -e "\n=== Checking configs for old patch directory references ==="
rg "BR2_GLOBAL_PATCH_DIR.*board.pc.patches" buildroot-external/configs/

Length of output: 71257


Script:

#!/bin/bash
# Check for any similar patches in the new location
echo "=== Checking for similar patches in new location ==="
rg -l "iwlwifi|beacon.*timeout" buildroot-external/patches/

echo -e "\n=== Checking kernel config for iwlwifi settings ==="
rg "CONFIG_IWLWIFI" buildroot-external/board/*/kernel.config

echo -e "\n=== Checking for other references to iwlwifi in configs ==="
rg "iwlwifi" buildroot-external/board/*/

Length of output: 4496

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nope, that patch is already in 6.12 kernel.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sairon Thank you for the correction. You're absolutely right - the beacon timeout functionality is already included in the Linux 6.12 kernel, so there's no need to migrate the patch. I apologize for the confusion in my previous comment.

🔗 Analysis chain
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for beacon timeout configuration in kernel source
echo "=== Checking for beacon timeout configuration in kernel source ==="
rg -A 5 -B 5 "beacon.*timeout.*config" buildroot-external/kernel/v6.12.y/

# Check if the patch file still exists
echo -e "\n=== Checking if patch file exists ==="
fd . "buildroot-external/board/pc/patches/linux" -t f -e patch | grep -i "iwlwifi"

Length of output: 491


Script:

#!/bin/bash
# Search for beacon timeout configuration in kernel source
echo "=== Checking kernel source for beacon timeout configuration ==="
ast-grep --pattern 'struct iwl_mod_params {
  $$$
  unsigned int beacon_timeout;
  $$$
}'

# Check the content of the patch file
echo -e "\n=== Checking patch content ==="
cat buildroot-external/board/pc/patches/linux/0001-iwlwifi-Make-missed-beacon-timeout-configurable.patch

Length of output: 4545


If you found this review helpful, would you consider giving us a shout-out on X?
Thank you for using CodeRabbit!

@sairon sairon merged commit f9776ab into dev Jan 30, 2025
3 checks passed
@sairon sairon deleted the linux-6.12-ova branch January 30, 2025 10:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
board/ova Open Virtual Appliance (Virtual Machine) cla-signed linux Linux kernel related issue
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants